Лучшая практика пользовательского интерфейса iOS - UILabel или UITextView?

Например, если вы создаете приложение UIView для iPhone для отображения статьи из блога.

Какой компонент пользовательского интерфейса вы бы порекомендовали для отображения тела статьи? UILabel с numberOfLines равным нулю или UITextView без прокрутки и фиксированного размера?

Почему?


person Gustavo Barbosa    schedule 06.08.2013    source источник
comment
Я согласен с ответом @Vishnu Kumar ниже: мне нужно было отобразить всплывающую подсказку для моего приложения, и самым простым способом было использовать UITextView с isEditable, установленным на false (сделав его статическим).   -  person toraritte    schedule 06.04.2018


Ответы (3)


Обновление. Как я уже говорил ниже, я согласен, что это не лучший ответ в наши дни. В 2013 году это было более точно, но сегодня вы должны использовать текстовое представление для большого текстового поля. Я не могу удалить это, так как это принятый ответ, но я согласен (и проголосовал за) с ответом Вишну ниже.

Это немного зависит от того, что именно вы пытаетесь сделать.

Если вам нужно отобразить статический текст без функций редактирования и выбора, вы должны использовать UILabel и при необходимости поместить его в UIScrollView.

Если вам нужно выбрать или отредактировать, используйте UITextView.

person garrettmurray    schedule 06.08.2013
comment
Эй, Гаррет! Это имеет смысл. Спасибо за ответ. - person Gustavo Barbosa; 06.08.2013
comment
Я думаю, что ваш ответ неверен, пожалуйста, посмотрите на следующий. - person Vishnu Kumar. S; 27.07.2015
comment
Руководство по текстовому программированию для iOS в Ответ @Vishnu ниже является правильным ответом на этот вопрос. Он даже предлагает, как просматривать веб-контент, например сообщения в блогах (цитата: Use Web Views to Display Web Content). - person toraritte; 06.04.2018
comment
Согласитесь, это не лучший ответ в наши дни. В 2013 году это было более точно, но сегодня вы должны использовать текстовое представление для большого текстового поля. Я не могу удалить это, так как это принятый ответ, но я согласен (и проголосовал за) ответ Вишну ниже. - person garrettmurray; 17.04.2018
comment
Но вы не можете указать обтекание содержимого для текстового представления; как сделать так, чтобы он соответствовал только представленным словам? - person pete; 14.08.2020

Извините за поздний ответ, но это может помочь кому-то.

Согласно Руководству Apple по текстовому программированию для iOS, UILabel определяет метку, которая отображает статическую текстовую строку. UITextField определяет текстовое поле, которое отображает одну строку редактируемого текста. UITextView определяет текстовое представление, которое отображает несколько строк редактируемого текста. Хотя эти классы на самом деле могут поддерживать отображение произвольного количества текста, метки и текстовые поля предназначены для использования с относительно небольшими объемами текста, обычно одной строкой. Текстовые представления, с другой стороны, предназначены для отображения больших объемов текста.

Для получения дополнительной информации см.: Руководство по текстовому программированию для iOS

person Vishnu Kumar. S    schedule 07.07.2015

Какой компонент пользовательского интерфейса вы бы порекомендовали для отображения тела статьи? UILabel с numberOfLines равен нулю или UITextView без прокрутки и фиксированного размера?

Обратимся к официальной документации от Apple, рекомендации по использованию текстового контента в приложении.

Согласно ему, UIKit framework предоставляет три основных класса для отображения текстового контента в пользовательском интерфейсе приложения: UILabel, UITextField и UITextView.

Строка ниже намекает на возможную рекомендацию для конкретного варианта использования:

Хотя эти классы на самом деле могут поддерживать отображение произвольного количества текста, метки и текстовые поля предназначены для использования с относительно небольшими объемами текста, обычно одной строкой. Текстовые представления, с другой стороны, предназначены для отображения больших объемов текста.

Если мы рассмотрим вариант использования отображения статьи, будет справедливо предположить, что она будет иметь существенное текстовое содержимое. И, следовательно, если мы применим вышеизложенные рекомендации, UITextView кажется лучшим инструментом для работы.

Затем, когда пользователь читает текст статьи, UITextView имеет выбираемый текст. Это означает, что пользователь может скопировать определенные строки из статьи или заставить устройство озвучивать текст.

person AADProgramming    schedule 21.04.2017