我正在向 UIScrollView
中的包装 CATextLayer
添加文本。每次添加文本时,我都需要为 textLayer 和 scrollView 的 contentSize
增加高度,并调整 scrollView 的 contentOffset
。
(用户应该能够使用 scrollView 查看以前的文本,但是当添加新文本时,我想以编程方式向下滚动到它。)
UIKit 的 sizeWithFont:
会将整个字符串视为在一行中,因此为了计算高度,我需要将返回的 size.height 乘以行数,如由 textLayer 的包装产生。
问题是,如果我通过 textLayer 访问字符串,它不会包含任何额外的“\n”或“\r”字符来说明换行。
我确实可以通过某种方式获取包装信息吗?也许以某种方式从父类(super class) CALayer
派生?否则我将无法计算自己的换行符。
最佳答案
我假设 CATextLayer
在内部使用 Core Text 进行布局,因此您可以这样做并使用 CTFramesetterSuggestFrameSizeWithConstraints
为具有给定宽度的属性字符串计算适当的高度.
关于objective-c - 如何获取 CATextLayer 的环绕计数以计算高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9928744/