iphone - CoreText - 空格不换行?

标签 iphone ios cocoa-touch core-graphics core-text

我在 CoreText 中注意到,在开发我自己的自定义 UITextView 以及查看 Apple 的 SimpleTextInput 时,空格或“”不会当行尾的空间用完时,它不会中断(或移动到下一行)。相反,它会继续绘制在超过 View 宽度边界的同一条线上。

这是一个错误,还是预期的行为?无论如何,是否有空间用 CoreText 换行/换行到下一行?

更新:尝试单独设置空格以具有 kCTLineBreakByCharWrapping 属性,但没有成功。想也许有一些 unicode 字符我可以输入而不是 @"" 可能让它正常工作?暂时避免将其手动放入代码中。

最佳答案

根据设计,空格本身不会触发换行符。只有越过边距的可见字符才会触发换行。

您可以使用 CTLineGetTrailingWhitespaceWidth 找到 CTLine 末尾的空白宽度。

您可以通过将 CTRunDelegate 属性附加到它来使空白字符导致换行(如果它越过边距)。您必须让 CTRunDelegate 报告适当的宽度、上升和下降,您可能需要在 CTFont 中查找这些内容。对于设置为相同字体和大小的所有空格,您或许可以使用 CTRunDelegate 的单个实例。

关于iphone - CoreText - 空格不换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9876271/

相关文章:

iPhone以编程方式读取代理设置

iphone - iPad Retina 登陆页面大小 - 2MB

ios - 用户界面测试: Slider fails to adjust when nested in Table View Cell

cocoa-touch - UIButton 上的文本更改不会保留

ios - 具有警报级别的 UIWindow 位于状态栏级别之上

iOS:UIImage 上的 EXC_BAD_ACCESS:drawInRect 有 2 个图像

iphone - Vuforia AR 按钮可以打开另一个 View 或应用程序吗?

iphone - Xcode 4.2 无法正确调试

iphone - 如何用 CGPathAddCurveToPoint 创建一个完美的半圆?

iOS:如何在我的应用程序中设置铃声和警报音量