У меня есть определенное количество текста, который заполняет некоторые CTFrame
(более одного). Чтобы создать все фреймы (по одному для каждой страницы), я заполняю один фрейм, получая текст, который не умещается в фрейм, с помощью CTFrameGetVisibleStringRange
и повторяю этот процесс, пока весь текст не будет обработан.
На всех фреймах, кроме последнего, текст занимает одинаковую высоту страницы. На последнем кадре я хотел бы знать реальную высоту, занимаемую текстом, чтобы знать, где я мог бы начать рисовать больше текста.
Есть ли способ сделать это?
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);