【问题标题】:CGContextShowText to draw in center alignedCGContextShowText 以中心对齐方式绘制
【发布时间】:2013-05-31 07:28:35
【问题描述】:

尝试使用 CGContextShowText 绘制文本。如何使文本居中于特定矩形?

注意:drawInRect 可以完成这项工作。我特别询问 CGContextShowText

【问题讨论】:

  • 获取文本的大小,减去矩形的大小,减半,添加到矩形的X原点,在那里绘制。
  • 谢谢。想到了这个。所以没有像我们设置字体和其他属性那样的确定方法来设置它吗?
  • 嗯,文档是怎么说的?
  • 在点(x, y)', specified in user space, in the context c' 处绘制string', a string of length' 字节。字符串的每个字节通过当前字体的编码向量映射得到要显示的字形。
  • 我的意思是,是否有任何功能在描述中提到了指定文本对齐的可能性?如果是这样,那么你必须自己做数学。

标签: iphone ios objective-c core-graphics core-text


【解决方案1】:

如果你真的想使用CGContextShowText(Core Text 会更好),你必须自己计算,即计算出文本有多大,然后从你的 x 坐标中减去一半中心点。

要确定文本的大小,可以将文本绘制模式设置为kCGTextInvisible(使用CGContextSetTextDrawingMode),绘制一次文本,检查文本位置移动了多远(使用CGContextGetTextPosition前后绘图),然后在正确的位置以可见的绘图模式再次绘制文本。

【讨论】:

    猜你喜欢
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 2016-05-09
    相关资源
    最近更新 更多