我必须在这里做所有这些疯狂的坐标系转换,或者是UILabel与-drawRect中的UIImageView绘图不同:?
有一种方法- (void)drawTextInRect:(CGRect)rect需要它.
但是文档说:"你不应该直接调用这个方法.这个方法只能由想要修改标签文本的默认绘图行为的子类覆盖."
所以?如何在-drawRect中绘制它?
Bra*_*son 17
UILabel的不同之处在于您不需要手动绘制文本来改变它的呈现方式.对UILabel进行子类化和覆盖-drawTextInRect:是改变UILabel渲染方式的最快方法.例如,
- (void)drawTextInRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetShadowWithColor( context, shadowOffset, shadowRadius, [shadowColor CGColor] );
[super drawTextInRect:rect];
}
Run Code Online (Sandbox Code Playgroud)
将为您在该UILabel中绘制的任何文本添加具有特定偏移,半径和颜色(作为UIColor实例)的阴影.有关此操作的示例,请参阅我为最近的课程放在一起的项目.
但是,如果你想要做的只是在另一个视图中绘制文本,弗拉基米尔的答案是要走的路.
Vla*_*mir 15
如果在视图中执行自定义绘图,则不得绘制UILabel或其他UI元素,而是绘制文本本身.NSString有几种在当前上下文中绘制的方法(有关更多方法,请查看NSString的UIKit扩展文档):
- (CGSize)drawInRect:(CGRect)rect withFont:(UIFont *)font
- (CGSize)drawAtPoint:(CGPoint)point withFont:(UIFont *)font
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17592 次 |
| 最近记录: |