我正在更新2011年编写的iOS 11应用程序.该应用程序是一本交互式书籍,使用CoreText.当应用程序针对iOS 9构建时,文本将按预期呈现,但是当针对iOS 10或更高版本构建时,文本呈现不正确(请参见图像).问题似乎是由于空白和/或行间距处理的变化.我已经尝试更改各种CTParagraphStyleSpecifier的值,但没有一个具有所需的结果.编辑文本不是一个可行的选项,因此修复必须与修复CoreText相关.我的问题:
>是否可以在iOS 9之后配置CoreText以将类似版本渲染到iOS 9?
>如果无法修复CoreText,如果针对iOS 9构建应用程序,是否会有任何问题提交?
解决方法
我不知道如何进行页面布局,似乎给CTFramesetter提供了一个非常空间的CGPathRef,并将整个页面布局在一个CTFrameRef中.
因此,如果行间距(或行高)增加,则行将超出设计区域.
调整以下CTParagraphStyleSpecifier可能会有所帮助,具体取决于您使用的是:
kCTParagraphStyleSpecifierLineHeightMultiple kCTParagraphStyleSpecifierMaximumLineHeight kCTParagraphStyleSpecifierMinimumLineHeight kCTParagraphStyleSpecifierLineSpacing kCTParagraphStyleSpecifierMaximumLineSpacing kCTParagraphStyleSpecifierMinimumLineSpacing kCTParagraphStyleSpecifierLineSpacingAdjustment