【问题标题】:Quartz 2d / Core Graphics: What is the right way to draw some text?Quartz 2d / Core Graphics:绘制文本的正确方法是什么?
【发布时间】:2011-03-12 02:17:04
【问题描述】:

我已经有一段时间了,似乎在石英 2d 中有很多方法可以解决这个问题:

1) 使用核心图形方法绘制文本...

CGContextSelectFont
CGContextSetRGBFillColor
CGContextShowTextAtPoint

不断地不断,这是非常低的水平。

2) 使用 NSString drawAtPoint

(目前为止我喜欢的方法)

NSString* text = @"Hello";
[text drawAtPoint:point withFont:font];

3) 使用 UILabel

我在某处读过这篇文章,但不太确定这是否可行。但我认为在 drawRect 中实例化 UILabel 会非常昂贵,因为 drawRect 可能会被调用无数次。 ??


目前我对 2.(使用 NSString drawAtPoint)没问题,但我想获得一些意见。同样,我试图在 drawRect 中创建文本(我对视图进行了子类化),因为我也在绘制形状和文本,正确的方法是什么?

谢谢

【问题讨论】:

    标签: iphone objective-c cocoa-touch quartz-graphics quartz-2d


    【解决方案1】:

    虽然我同意 Yuji 你不应该使用 #1,但我想补充一点,如果可能的话,你应该使用 UILabel 而不是自定义绘图,因为如果你可以避免实现 -drawRect:无论如何,任何地方,你都应该这样做。

    【讨论】:

      【解决方案2】:

      #1 不支持国际字符。因此,如果您使用它来绘制用户输入的文本,请不要使用它。

      所以,请使用 #2,除非您绝对确定文本仅包含标准 ASCII 字符。

      【讨论】:

        【解决方案3】:

        #2 是我通常的做法,除非我需要更精确地控制使用 CG/CT

        【讨论】:

          猜你喜欢
          • 2010-12-25
          • 2011-02-19
          • 2014-02-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-07-18
          • 2011-07-19
          相关资源
          最近更新 更多