2015-06-18 2 views
0

Так что у меня UIView подвид с UILabel в верхней части, статический текст и минимальный масштаб (Чтобы справиться с 4" против 6 близнецов)UITextView против UILabel: Что касается линейного расстояния

Под этим я. есть три строки текста со статической строкой.

в соответствии с этим, у меня есть кнопка с таможенной границей, угловой радиусом.

у меня был проблема с размером и шагом. с экраном 4" , я хочу расстояние между линиями должно быть 0, так что UILabel и UIButton будут иметь одинаковый интервал между верхними и нижней части представления.

С 6/6 + экраном, я хочу, межстрочный интервал 1,5 ~ 2,0:

С UITextView, отключить взаимодействие с пользователем и прокрутки, я установить свойство шрифта в IB и в моем ViewController, я переопределения layoutManager/lineSpacingAfterGlyphAtIndex с условным оператором :UI_USER_INTERFACE_IDIOM и границами в начале проверить высоту экрана и возврат поплавок, основанный на 4 «/4.7» /5.5" размеры экрана.

Он отлично работает, отлично выглядит, не имеют никаких проблем взаимодействия.

Но мой коллега настаивает на том, что я должен b e используя UILabel с подсчетом строк, потому что это статический текст и позор для меня для использования UITextView.

Есть ли программная СИСТЕМАТИЧЕСКАЯ причина, по которой я должен использовать UILabel вместо UITextView? И нет, я не ищу консервированную копию/вставленную «UILabel для статического текста, а UITextView - это текст, который вы хотите отредактировать« бла-бла ». Я хочу знать фактические фундаментальные различия, когда TextView имеет свои свойства взаимодействия с пользователем, отключенные для переопределения межстрочного интервала.

+0

«С 4-дюймовым экраном, я хочу, чтобы интервал между линиями был 0, так что UILabel и UIButton будут иметь одинаковое расстояние между верхней и нижней частью представления». Это звучит совершенно неправильно ... Просто измените размер ваших кнопок и установите 10px поля между ним и представлением. Ваш подход будет работать неправильно, как только шрифт iOS изменится, например, в iOS 9 - конец Helvetica. Вся концепция не удастся. Код также будет сложнее поддерживать. неправильно. – Vive

ответ

0

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

Если вы хотите, чтобы пользователь выделил текст, отображаемый в пользовательском интерфейсе; вы можете перейти в текстовое окно. uilabel не поддерживает выбор и копирование.

UIlabel получен из UIview, но uitextview получен из UIScrollView. поэтому он также наследует свойства scrollview. uitextview соответствует протоколу для манипуляций с клавиатурой

0

Нет никакого стыда за использование UITextview вместо UIlabel.

UILabel: Вы можете использовать его для статического текста, если в нем нет действий.

Пример: доступные ссылки внутри статического текста.

Отключение функции «Редактировать» в текстовом режиме отключает редактирование. Это не устраняет взаимодействие пользователя. Поэтому, если у вас есть какие-либо ссылки или хэштеги внутри статического текста, он автоматически обнаружит.

Как -> #iphone @Ram http://google.com

UILabel не обнаружить эти вещи.

ранее многие люди подклассифицировали UILabel для получения этой функциональности. UITextView имеет встроенную функциональность.

Итак, если у вас есть какие-либо элементы, которые можно кликать внутри статического текста, используйте UITextview. В противном случае используйте только UILabel.

Смежные вопросы