我遇到了CoreText的“鸡或鸡蛋”问题。CTFramesetterSuggestFrameSizeWithConstraints包装文本时
我需要知道CGSize
NSAttributedString
将围绕图像缠绕。 我有一个UITableView在右上角显示文本和图像。 在我的模型上,我存储了CTFrameSetterRef
,即我的模型实体在加载时计算了所有 一次,然后将我的单元格cellForRowAtIndexPath
中的CTFrameSetterRef
传递给我。
我也预先计算用我的frameSetter和CTFramesetterSuggestFrameSizeWithConstraints
这是直线前进的单元格的高度,我现在已经有构造一个AttributedString渲染对象的数组,一个frameSetter与使其和高度,以便tableView在更新单元之前就知道这一点。
现在我想围绕图像右上角的文字。 当我想预先计算这些值时,会出现一些问题。
据我可以看出,我需要一个CTFrameSetter来计算大小 (使用CTFramesetterSuggestFrameSizeWithConstraints)。 这只给我的大小,如果我的框架是矩形的 - 如果我想包装文本,我需要创建一个路径并设置它的大小 - 但这是在我知道大小之前! 然后,我需要将路径添加到字典中,并使用字典构建CTFrameRef。
我的问题是我如何预先计算我的细胞的高度,如果我的属性文本是围绕图像?