Как сделать центр выравнивания текста UIButton? Через ИБ
Я не могу установить название UIButton, используя IB в качестве центра. Мое название-multi line.
это дает, как этот
но я хочу, как этот
Я дал место в этом, но я не хочу этого делать. Поскольку он не выровнен точно для некоторых случаев, и я знаю, что есть свойство UILabel для установки выравнивания, но я не хочу писать код для этого.. просто хочу установить все из IB.
спасибо
15 ответов
это сделает именно то, что вы ожидали:
Цель-C:
[myButton.titleLabel setTextAlignment:UITextAlignmentCenter];
для iOS 6 или выше, это
[myButton.titleLabel setTextAlignment: NSTextAlignmentCenter];
как поясняется в tyler53 это
Свифт:
myButton.titleLabel?.textAlignment = NSTextAlignment.Center
используйте строку:
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
это должно центрировать содержимое (по горизонтали).
и если вы хотите также установить текст внутри метки в центр, используйте:
[labelOne setTextAlignment:UITextAlignmentCenter];
Если вы хотите использовать IB, у меня есть небольшой пример здесь, который связан в XCode 4, но должен предоставить достаточно подробную информацию (также имейте в виду, что поверх этого экрана свойств он показывает вкладку свойств. Вы можете найти те же вкладки в XCode 3.икс):
Решение 1
вы можете установить ключевой путь в раскадровке
установите текст в многострочный заголовок, например hello
⌥ + ↵ multiline
нужно нажать ⌥ + ↵ перенести текст на следующую строку.
затем добавьте ключевой путь
titleLabel.textAlignment
as Number
и значение 1
, 1
означает NSTextAlignmentCenter
titleLabel.numberOfLines
as Number
и значение 0
, 0
означает любое количество строк
это не будет отражено на IB/Xcode, но будет в центре во время выполнения (устройство / симулятор)
если вы хотите увидеть изменения в Xcode, вам нужно сделать следующее: (помните, что вы можете пропустить эти шаги)
-
подкласс UIButton, чтобы сделать кнопку designable:
import UIKit @IBDesignable class UIDesignableButton: UIButton {}
назначьте этот обозначаемый подкласс кнопкам, которые вы изменяете:
- Iff сделано правильно, вы увидите визуальное обновление В IB, когда состояние Designables "Обновлено" (что может занять несколько секунды):
Solution2
если вы хотите написать код, затем сделайте длительный процесс
1.Create IBOutlet
кнопки
2.Напишите код в viewDidLoad
btn.titleLabel.textAlignment = .Center
btn.titleLabel.numberOfLines = 0
Solution3
в более новой версии xcode (мой xcode 6.1) у нас есть свойство, приписываемое название
Выберите Attributed
затем выберите текст и нажмите кнопку центр ниже
П. С. текст не приходил многострочный, для этого я должен установить
btn.titleLabel.numberOfLines = 0
для UIButton вы должны использовать:-
[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
для ios 8 и Swift
btn.titleLabel.textAlignment = NSTextAlignment.Center
или
btn.titleLabel.textAlignment = .Center
для тех из вас, кто теперь использует iOS 6 или выше, uitextalignmentcenter устарел. Теперь это NSTextAlignmentCenter
пример: mylabel.textAlignment = NSTextAlignmentCenter;
отлично работает.
предполагая, что btn относится к UIButton, чтобы изменить многострочный заголовок по горизонтали, вы можете использовать следующий оператор в iOS 6 или более поздней версии:
self.btn.titleLabel.textAlignment = NSTextAlignmentCenter;
UITextAlignmentCenter
устарел в iOS6
btn.titleLabel.textAlignment=NSTextAlinmentCenter;
на самом деле вы можете сделать это в interface builder.
вы должны установить заголовок в "Attributed", а затем выбрать выравнивание по центру.
попробуйте так :
yourButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
yourButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
UIButton не будет поддерживать setTextAlignment. Таким образом, вам нужно пойти с setcontenthorizontalignment для выравнивания текста кнопки
Для справки
[buttonName setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
вы можете сделать это в раскадровке. Выберите кнопку. Набор строки 'перенос слов', обычного ваше звание '' к 'списать'. Выберите "выравнивание по центру". Эта часть важна = > нажмите ...(Еще) Кнопка. И выберите режим разрыва строки для "обертывания символов".
Для Swift 4:
@IBAction func myButton(sender: AnyObject) {
sender.titleLabel??.textAlignment = NSTextAlignment.center
sender.setTitle("Some centered String", for:UIControlState.normal)
}