Как создать центр выравнивания текста UIButton? Использование IB
Я не могу установить заголовок UIButton, используя IB как центр. Мой заголовок - многострочный.
Это дает как этот ![enter image description here]()
Но я хочу как этот ![enter image description here]()
Я дал место в этом, но я не хочу этого делать. Поскольку он не выровнен точно для некоторых случаев, и я знаю, что есть свойство UILabel для установки выравнивания, но я не хочу писать код для этого. Просто хочу установить все из IB.
Спасибо
Ответы
Ответ 1
Solution1
Вы можете установить путь ключа в раскадровке
Установите текст в многострочный заголовок, например. hello
⌥ + ↵ multiline
Вам нужно нажать ⌥ + ↵, чтобы переместить текст в следующую строку.
![введите описание изображения здесь]()
Затем добавьте путь ключа
titleLabel.textAlignment
как Number
и значение 1
, 1
означает NSTextAlignmentCenter
titleLabel.numberOfLines
как Number
и значение 0
, 0
означает любое количество строк
![введите описание изображения здесь]()
Это не будет отражено в IB/Xcode, но будет находиться в центре во время выполнения (устройство/симулятор)
Если вы хотите увидеть изменения в Xcode, вам необходимо сделать следующее: (помните, что вы можете пропустить эти шаги)
-
Подкласс UIButton, чтобы сделать кнопку условной:
import UIKit
@IBDesignable class UIDesignableButton: UIButton {}
-
Назначьте этот назначаемый подкласс кнопкам, которые вы изменяете:
![Показывает, как изменить класс кнопки с помощью Interface Builder]()
- Iff выполнил правильно, вы увидите визуальное обновление в IB, когда состояние Designables "обновлено" (что может занять несколько секунд):
![Сравнение условной и стандартной кнопки в Interface Builder]()
Solution2
Если вы хотите написать код, выполните длинный процесс
1.Создайте IBOutlet
для кнопки
2.Видите код в viewDidLoad
btn.titleLabel.textAlignment = .Center
btn.titleLabel.numberOfLines = 0
Solution3
В новой версии xcode (my is xcode 6.1) у нас есть свойство, присвоенное title
Выберите Attributed
, затем выберите текст и нажмите кнопку центра ниже
P.S. Текст не шел многострочным, потому что я должен установить
btn.titleLabel.numberOfLines = 0
![enter image description here]()
Ответ 2
Это сделает именно то, что вы ожидали:
Objective-C:
[myButton.titleLabel setTextAlignment:UITextAlignmentCenter];
Для iOS 6 или выше
[myButton.titleLabel setTextAlignment: NSTextAlignmentCenter];
как описано в tyler53 answer
Swift:
myButton.titleLabel?.textAlignment = NSTextAlignment.Center
Ответ 3
Используйте строку:
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
Это должно центрировать контент (по горизонтали).
И если вы хотите также установить текст внутри метки в центр, используйте:
[labelOne setTextAlignment:UITextAlignmentCenter];
Если вы хотите использовать IB, у меня есть небольшой пример здесь, который связан в XCode 4, но должен содержать достаточно подробностей (также, в отличие от этого экрана свойств, он показывает вкладку свойств. вкладки в XCode 3.x):
![enter image description here]()
Ответ 4
Для UIButton вы должны использовать: -
[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
Ответ 5
Для ios 8 и Swift
btn.titleLabel.textAlignment = NSTextAlignment.Center
или
btn.titleLabel.textAlignment = .Center
Ответ 6
Для тех из вас, кто сейчас использует iOS 6 или выше, UITextAlignmentCenter устарел. Теперь NSTextAlignmentCenter
ПРИМЕР: mylabel.textAlignment = NSTextAlignmentCenter;
Работает отлично.
Ответ 7
Предполагая, что btn ссылается на UIButton, чтобы изменить многострочный заголовок, который должен быть центрирован по горизонтали, вы можете использовать следующий оператор в iOS 6 или новее:
self.btn.titleLabel.textAlignment = NSTextAlignmentCenter;
Ответ 8
UITextAlignmentCenter
устарел в iOS6
Вместо этого вы можете использовать этот код:
btn.titleLabel.textAlignment=NSTextAlinmentCenter;
Ответ 9
На самом деле вы можете сделать это в построителе интерфейса.
Вы должны установить Title в "Attributed", а затем выбрать выравнивание по центру.
Ответ 10
UIButton не поддерживает setTextAlignment. Поэтому вам нужно пойти с setContentHorizontalAlignment для выравнивания текста кнопки
Для справки
[buttonName setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
Ответ 11
Попробуйте:
yourButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
yourButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
Ответ 12
Для Swift 3.0
btn.titleLabel?.textAlignment = .center
Ответ 13
Для быстрого 4, xcode 9
myButton.contentHorizontalAlignment = .center