CoreText:iOS 9之后的文本呈现方式不同

时间:2017-09-11 08:36:17

标签: ios core-text

我正在更新2011年编写的iOS 11应用程序。该应用程序是一本交互式书籍,使用的是CoreText。当应用程序针对iOS 9构建时,文本将按预期呈现,但是当针对iOS 10或更高版本构建时,文本呈现不正确(请参见图像)。问题似乎是由于空白和/或行间距处理的变化。我尝试更改各种CTParagraphStyleSpecifier的值,但没有一个具有所需的结果。编辑文本不是一个可行的选项,因此修复必须与修复CoreText相关。我的问题:

  1. 是否可以在iOS 9之后配置CoreText以将类似版本渲染到iOS 9?
  2. 如果无法修复CoreText,如果是针对iOS 9构建的,那么提交应用程序通行证会有任何问题吗?
  3. Screen shot of CoreText rendering on iOS9 and iOS10

1 个答案:

答案 0 :(得分:0)

我不知道如何进行页面布局,似乎给CTFramesetter提供了一个非常空间的CGPathRef,并将整个页面布局在一个CTFrameRef中。

因此,如果行间距(或行高)增加,则行将超出设计区域。

调整以下CTParagraphStyleSpecifier可能会有所帮助,具体取决于您使用的是:

kCTParagraphStyleSpecifierLineHeightMultiple
kCTParagraphStyleSpecifierMaximumLineHeight
kCTParagraphStyleSpecifierMinimumLineHeight
kCTParagraphStyleSpecifierLineSpacing
kCTParagraphStyleSpecifierMaximumLineSpacing
kCTParagraphStyleSpecifierMinimumLineSpacing
kCTParagraphStyleSpecifierLineSpacingAdjustment