我有一定數量的文本填充一些CTFrame
(多於一個)。要創建所有框架(每個頁面一個框架),我填寫一個框架,使用CTFrameGetVisibleStringRange
獲取不符合框架的文本,然後重複此過程,直到處理完所有文本。如何獲得在CTFrame上繪製的文本的真實高度
在除最後一幀以外的所有幀上,文本佔用頁面的相同高度。在最後一幀我想知道文本佔據的真實高度,知道我可以開始繪製更多文本的位置。
有沒有辦法做到這一點?
UPDATE
按照要求提出意見,這是一個使用@omz的建議下我的解決方案:
我使用ARC在我的項目:
CTFrameRef locCTFrame = (__bridge CTFrameRef)ctFrame;
//Save CTLines
lines = (NSArray *) ((__bridge id)CTFrameGetLines(locCTFrame));
//Get line origins
CGPoint lOrigins[MAXLINESPERPAGE];
CTFrameGetLineOrigins(locCTFrame, CFRangeMake(0, 0), lOrigins);
CGFloat colHeight = self.frame.size.height;
//Save the amount of the height used by text
percentFull = ((colHeight - lOrigins[[lines count] - 1].y)/colHeight);
謝謝@omz我想我會使用第一個,因爲我在另一個[CTFFramesetterSuggestFrameSizeWithConstraints]上看到[答案](http://stackoverflow.com/questions/2707710/core-texts-ctframesettersuggestframesizewithconstraints-returns-incorrect-siz)有時候會返回一個不正確的值。 – javsmo
非常感謝你@omz它完美的工作! – javsmo