Подтвердить что ты не робот

Ios: лучший способ отображения многострочного текста переменной длины

Я планирую загрузить содержимое нескольких абзацев из текстового файла и отображать его в пользовательском интерфейсе. Я загружу из одного из нескольких текстовых файлов и не буду знать заранее, как долго будет текст. Моя первая мысль заключалась в использовании UILabel внутри UIScrollView. Тем не менее, похоже, что UILabel может быть расширена в зависимости от количества строк, которые она содержит. Правильно ли это?

Если UILabel не является подходящим инструментом для работы, что я должен использовать? UIWebView? Будет ли UIWebView красиво обрабатывать прокрутку для меня?

4b9b3361

Ответ 1

Отъезд UITextView. Вы можете разместить его внутри UIView, а текстовое представление предоставляет все функции прокрутки и многое другое (это подклассы UIScrollView).

Ответ 2

Если вы не хотите использовать UITextView, который прокручивается, поэтому он будет размещать любой текст, который вам нужен, вы можете проверить некоторые методы для вычисления размера UILabel, например, "на лету".

Это должно помочь вам начать работу в правильном направлении: NSString имеет несколько методов категории UIKit

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size;
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode;

Вы вызываете эти методы на NSString, передавая любой шрифт, который вы хотите использовать, а также максимальный размер. Обычно я буду ограничивать ширину, но даю очень большую высоту, чтобы она могла сообщить мне, что такое лучшая высота. Эти методы возвращают CGSize, которые затем можно использовать для установки фреймов UILabels. Например, если я знаю, что максимальная ширина, на которую я могу разместить метку, составляет 300 точек в ширину, я передам CGSizeMake (300, 2000) для ограниченного размера.