2013-09-06 6 views
19

Мне было интересно, есть ли хороший способ сделать UIButtons с многострочным titleLabel в Interface Builder? Я не нашел ни одного и положил отдельную UILabel поверх каждой кнопки и отслеживая ее цвет при печати, а другие события не очень просты.UIButton с несколькими строками titleLabel в интерфейсеBuilder

Возможно, в коде есть лучшие альтернативы, если в IB нет такого способа?

+0

Возможный дубликат http://stackoverflow.com/questions/604632/how-do-you-add-multi-line-text-to-a-uibutton –

ответ

54

Код:

Чтобы разрешить несколько линии вы можете использовать:

button.titleLabel.lineBreakMode = UILineBreakModeWordWrap; 
button.titleLabel.textAlignment = UITextAlignmentCenter; 
[button setTitle: @"Line1\nLine2" forState: UIControlStateNormal]; 

В IOS 6, UILineBreakModeWordWrap и UITextAlignmentCenter устарели, так что используйте:

button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping; 
button.titleLabel.textAlignment = NSTextAlignmentCenter; 

Интерфейс Builder:

  • В интерфейсе строитель выберите UIButton
  • на правой стороне панели Utilities под Attributes Inspector, вы увидите опцию для Line Перерыв
  • Выбрать Word Wrap
+1

Большой! Выполняется только с помощью кода. –

+0

Не это скопировать/вставить с http://stackoverflow.com/a/1829420/466577 –

+0

@AsenKasimov в чем проблема?Оригинальный ответ/вопрос не имеет ничего общего с раскадровки –

4

Вы можете сделать только в Interface Builder пару способов.

  • Сначала просто установите функцию обертки. Тем не менее, это обеспечивает ограниченную настраиваемость.
  • Для большей настраиваемости измените «Обычный текст» на «Атрибутный текст», а затем вы можете делать большинство вещей без какого-либо кода.
0

Просто говоря, если один не хочет, переноса слов, но по-прежнему хочет, чтобы достичь несколько названия линии на UIButton это может быть сделано путем установки lineBreakMode перед тем numberOfLines, Это потому, что lineBreakMode кажется отменить из numberOfLines набора поэтому мы делают это в этом порядке.

Свифта:

button.titleLabel .lineBreakMode = NSLineBreakMode.byTruncatingTail

button.titleLabel .numberOfLines = 2

button.setTitle (myTitle, для: UIControlState.normal)?

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