我遇到了CoreText的「雞或雞蛋」問題。CTFramesetterSuggestFrameSizeWithConstraints包裝文本時
我需要知道CGSize
NSAttributedString
將圍繞圖像纏繞。 我有一個UITableView在右上角顯示文本和圖像。 在我的模型上,我存儲了CTFrameSetterRef
,即我的模型實體在加載時計算了所有 一次,然後將我的單元格cellForRowAtIndexPath
中的CTFrameSetterRef
傳遞給我。
我也預先計算用我的frameSetter和CTFramesetterSuggestFrameSizeWithConstraints
這是直線前進的單元格的高度,我現在已經有構造一個AttributedString渲染對象的數組,一個frameSetter與使其和高度,以便tableView在更新單元之前就知道這一點。
現在我想圍繞圖像右上角的文字。 當我想預先計算這些值時,會出現一些問題。
據我可以看出,我需要一個CTFrameSetter來計算大小 (使用CTFramesetterSuggestFrameSizeWithConstraints)。 這隻給我的大小,如果我的框架是矩形的 - 如果我想包裝文本,我需要創建一個路徑並設置它的大小 - 但這是在我知道大小之前! 然後,我需要將路徑添加到字典中,並使用字典構建CTFrameRef。
我的問題是我如何預先計算我的細胞的高度,如果我的屬性文本是圍繞圖像?