iphone - 如何在-drawRect中绘制UILabel :?

标签 iphone

我还必须在这里做所有这些疯狂的坐标系转换工作,还是 UILabel 与 -drawRect 中的 UIImageView 绘图不同:?

有一个名为 - (void)drawTextInRect:(CGRect)rect 的方法。

但是文档说:“您不应该直接调用此方法。此方法只能由想要修改标签文本的默认绘制行为的子类覆盖。”

所以呢?那么如何在-drawRect中绘制它:?

最佳答案

UILabel 的不同之处在于您不需要手动绘制文本来改变其呈现方式。子类化 UILabel 并覆盖 -drawTextInRect: 是更改 UILabel 呈现方式的最快方法。例如,

- (void)drawTextInRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetShadowWithColor( context, shadowOffset, shadowRadius, [shadowColor CGColor] );   
    [super drawTextInRect:rect];
}

将为您在该 UILabel 中绘制的任何文本添加具有特定偏移量、半径和颜色(作为 UIColor 实例)的阴影。有关实际操作的示例,请参阅 a project I put together for a recent class .

但是,如果您想做的只是在另一个 View 中绘制文本,那么弗拉基米尔的答案就是正确的选择。

关于iphone - 如何在-drawRect中绘制UILabel :?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2697440/

相关文章:

ios - 滑动手势不适用于 UIScrollView 和 subview

iphone - 垂直 UIScrollView?

iphone - 重用 nsdateformatter 将日期显示为字符串

iphone - 无法使用移动设备放大或缩小

ios - 在 iPhone 中使用 Skydrive API 的注销问题

ios - UITabBar swift 中缺少按钮

javascript - 是否可以从 UIWebView 启动像窗口一样的弹出窗口?

iphone - 使用按钮而不是 ui 导航 Controller 在 View 之间切换

iphone - 清理credentialsForProtectionSpace,使其仅设置一个键值。 NSURL凭证存储

iphone - 标签栏中的可扩展中心按钮