2017-01-29 1 views
1

Я работаю над музыкальным плеером и создаю лейблы для песни, альбома и исполнителя. Теперь, только ради пользовательского интерфейса, я бы хотел, чтобы метка песни всегда использовала пространство для 3 строк, даже если текст имеет 1 строку. Я установил количество строк в 3 в инспекторе атрибутов, но он отображает только 3 строки, если название песни на самом деле так долго!Force UILabel займет 3 строки

Моя первая идея обходного пути заключается в том, чтобы зафиксировать высоту метки до 3X размера текста (а затем некоторого для интервала). Может быть, лучшее решение? Или другой объект, который я мог бы использовать?

+0

Я предлагаю добавить скриншоты, они будут очень полезны для описания того, что вы пытаетесь достичь. –

+0

Мне нужен ярлык, чтобы всегда представлять 3 строки ... Действительно ли необходим скриншот? –

+0

Знаете ли вы, где вы хотите разделить линии? Можете ли вы разбить строку на подстроки, потому что вы можете принудительно разбить строку, произнеся «\ r» между кавычками (это обратная косая черта). – Pierce

ответ

1

Чтобы заставить UILabel взять три линии как в музыкальном проигрывателе, вам просто нужно добавить разрывы строк в соответствующих местах с \n и установить линии лейбла до 3.

Добавление разрывов строк :

var title = "Title" 
var album = "Album" 
var artist = "Artist" 

label.text = "\(title)\n" + 
     "\(album)\n" + 
     "\(artist)\n" 

Установка этикетки на 3 линии:

label.numberOfLines = 3 // or set this to 4 or higher if the title of the song might exceed one line 
+0

Это действительно отличная информация! Не совсем то, что я искал. Для каждого названия песни, альбома и исполнителя есть отдельные ярлыки. Я хотел, чтобы метка названия песни всегда была высотой 3 строк текста, а альбом/художник заблокирован в 1 строке. Обходной путь, который я использовал, - это блокировка высоты до чуть более 3X высоты текста (для 24-процентного шрифта он вышел на 86 очков). –

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