Я не могу установить заголовок UIButton, используя IB в качестве центра. Мое название многострочное.
Он дает как этот
Но я хочу вот такой
Я дал в этом место, но я не хочу этого делать. Поскольку в некоторых случаях он не выровнен точно, и я знаю, что есть свойство UILabel для установки выравнивания, но я не хочу писать для этого код ... просто хочу установить все из IB.
Благодарность
ios
objective-c
uibutton
interface-builder
Индер Кумар Ратор
источник
источник
self.yourButton.titleLabel.textAlignment = UITextAlignmentCenter;
Ответы:
Получится именно то, что вы ожидали:
Цель-C:
[myButton.titleLabel setTextAlignment:UITextAlignmentCenter];
Для iOS 6 и выше это
[myButton.titleLabel setTextAlignment: NSTextAlignmentCenter];
как объяснено в ответе tyler53
Swift:
myButton.titleLabel?.textAlignment = NSTextAlignment.Center
Swift 4.x и выше
источник
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
Используйте строку:
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
Это должно центрировать контент (по горизонтали).
И если вы хотите установить текст внутри метки в центр, используйте:
[labelOne setTextAlignment:UITextAlignmentCenter];
Если вы хотите использовать IB, у меня есть небольшой пример, который связан в XCode 4, но должен содержать достаточно подробностей (также обратите внимание, поверх этого экрана свойств отображается вкладка свойств. Вы можете найти те же вкладки в XCode 3.x):
источник
Решение1
Вы можете установить ключевой путь в раскадровке
Установите текст в свой многострочный заголовок, например
hello
⌥ +↵multiline
Вам нужно нажать ⌥ +, ↵чтобы переместить текст на следующую строку.
Затем добавьте ключевой путь
titleLabel.textAlignment
какNumber
и значение1
,1
означаетNSTextAlignmentCenter
titleLabel.numberOfLines
какNumber
и значение0
,0
означает любое количество строкЭто не будет отражено в IB / Xcode, но будет в центре во время выполнения (устройство / симулятор)
Если вы хотите увидеть изменения в Xcode, вам необходимо сделать следующее: (помните, что вы можете пропустить эти шаги)
Создайте подкласс UIButton, чтобы сделать кнопку настраиваемой:
import UIKit @IBDesignable class UIDesignableButton: UIButton {}
Назначьте этот назначаемый подкласс модифицируемым кнопкам:
Решение2
Если вы хотите написать код, выполните долгий процесс
1. Создать
IBOutlet
для кнопки 2. Записатькод в viewDidLoad
btn.titleLabel.textAlignment = .Center btn.titleLabel.numberOfLines = 0
Решение3
В более новой версии xcode (моя - xcode 6.1) у нас есть заголовок с атрибуцией свойства.
Выберите,
Attributed
затем выберите текст и нажмите опцию центра ниже.PS Текст не приходил многострочным, поэтому я должен установить
btn.titleLabel.numberOfLines = 0
источник
Line Breaking = Clip
, он преобразует текст в многострочныйbtn.titleLabel.textAlignment
, отлично работает.Для UIButton вы должны использовать: -
[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
источник
Для ios 8 и Swift
btn.titleLabel.textAlignment = NSTextAlignment.Center
или
btn.titleLabel.textAlignment = .Center
источник
Для тех из вас, кто сейчас использует iOS 6 или выше, UITextAlignmentCenter устарел. Теперь это NSTextAlignmentCenter
ПРИМЕР:
mylabel.textAlignment = NSTextAlignmentCenter;
отлично работает.источник
Для swift 4, xcode 9
источник
Предполагая, что btn относится к UIButton, чтобы изменить многострочный заголовок, чтобы он был центрирован по горизонтали, вы можете использовать следующий оператор в iOS 6 или новее:
self.btn.titleLabel.textAlignment = NSTextAlignmentCenter;
источник
Для Swift 4:
@IBAction func myButton(sender: AnyObject) { sender.titleLabel?.textAlignment = NSTextAlignment.center sender.setTitle("Some centered String", for:UIControlState.normal) }
источник
UITextAlignmentCenter
устарело в iOS6Вместо этого вы можете использовать этот код:
btn.titleLabel.textAlignment=NSTextAlinmentCenter;
источник
Для Swift 3.0
источник
Фактически вы можете сделать это в конструкторе интерфейсов.
Вы должны установить заголовок на «Приписанный», а затем выбрать выравнивание по центру.
источник
Попробуйте вот так:
yourButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; yourButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
источник
Вы можете сделать это из раскадровки. Выберите свою кнопку. Установите разрыв строки «Word Wrap», установите для вашего заголовка «Plain» значение «Attributed». Выберите «Выравнивание по центру». Эта часть важна => Нажмите кнопку ... (Подробнее). И выберите режим разрыва строки «Перенос символов».
источник
UIButton не поддерживает setTextAlignment. Итак, вам нужно использовать setContentHorizontalAlignment для выравнивания текста кнопки
Для справки
[buttonName setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
источник