Постраничное разделение текста в UIPageViewController

Рейтинг: 0Ответов: 1Опубликовано: 29.04.2015

Пишу читалку ePub под iOS: книги парсятся с помощью KFEpubController и в результате получаю массив глав книги в формате html. Для отображения страниц с перелистыванием (page curl как в iBooks) планирую использовать PageViewController но столкнулся с проблемой: как разбить длинный текст главы\книги на необходимые фрагменты для отображения на отдельных страницах. Другими словами - как вычислить длину текста, которую может вместить UITextView определенного размера, чтобы потом разбить длинный текст на страницы?

Спасибо!

Ответы

▲ 1

Вот например, код, вычисляющий высоту текста для отображении в UITableViewCell:

if let text = textSections?[indexPath.section][consts.key] {
    return text.boundingRectWithSize(CGSize(width: view.bounds.size.width - consts.widthOffset, height: CGFloat.max), options: .UsesLineFragmentOrigin, attributes: [NSFontAttributeName: consts.font], context: nil).size.height + consts.heightOffset
}

вот Objective-C и вычисление size

CGSize baseSize = /* базовый размер, в который нужно вписать текст */
CGSize textSize = [text boundingRectWithSize: baseSize options:  NSStringDrawingUsesLineFragmentOrigin attributes: @{NSFontAttributeName: [UIFont fontWithName: @"HelveticaNeue" size: 13]}].size;