ios: лучший способ отображения многострочного текста переменной длины - PullRequest
22 голосов
/ 21 апреля 2011

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

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

Ответы [ 2 ]

20 голосов
/ 21 апреля 2011

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

14 голосов
/ 21 апреля 2011

Если вы не хотите использовать 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) для ограниченного размера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...