【问题标题】:How to draw UILabel Into Context如何将 UILabel 绘制到上下文中
【发布时间】:2011-05-08 19:41:56
【问题描述】:

我正在尝试将 UIlabel 绘制到特定位置的新上下文中。我知道您可以轻松地将 NSString 绘制到上下文中,但我想保留 UILabel 的文本大小、颜色和自动换行样式。感谢您的帮助!

 UIGraphicsBeginImageContext(targetSize);   

 // here is where I want to draw UILabel to context

 UIGraphicsEndImageContext();   

【问题讨论】:

    标签: ios cocoa-touch uilabel


    【解决方案1】:

    您可以绘制任何视图using -renderInContext:,但如果您只需要保留文本大小、颜色和自动换行样式,您可以简单地use -drawInRect:withFont:lineBreakMode:alignment: 自定义所有选项。

    [label.textColor set];
    [label.text drawInRect:label.bounds
                  withFont:label.font
             lineBreakMode:label.lineBreakMode
                 alignment:label.textAlignment];
    

    UILabel 中也有a -drawTextInRect: method,但是苹果说“你不应该直接调用这个方法。”

    【讨论】:

    • 很棒的答案,我试了一下,效果很好,只是它绘制在上下文的顶部(屏幕顶部),与 UILabel 实际所在的底部相对。有什么想法吗?再次感谢您的帮助!
    • @Fierce:将label.bounds更改为您喜欢的任何CGRect。
    • 我知道这是很久以前的事了,但我一直在努力寻找这样的答案。你知道如何在 Swift 中创建这种效果吗?我一直在尝试翻译它,但无法弄清楚。
    • @frank21: -drawInRect:withFont:... 已被弃用,但您可以改用drawInRect(_, withAttributes:_)
    • 我是否也应该将 linebreakmode 和 alignment 添加为属性?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多