2015-07-11 4 views
20

Все еще изучайте Swift и не знаете Objective-C. Я видел, что для изменения текста кнопки программно требуется использование titleEdgeInsets, но я не уверен, как его использовать.Измените текст UIButton (дополнение) программно в Swift

Я хотел был бы изменить текст в кнопке (padding) внизу и как влево, так и вправо.

Спасибо за любые ответы и/или примеры!

ответ

20

Вы можете добавить отступы сверху, влево, вправо и снизу, выполнив эти строки кода.

button.titleEdgeInsets.left = 10; // add left padding. 
button.titleEdgeInsets.right = 10; // add right padding. 
button.titleEdgeInsets.top = 10; // add top padding. 
button.titleEdgeInsets.bottom = 10; // add bottom padding. 
63

Тем не менее справедливо для: iOS 11.2/Xcode 9.2/Swift 4.0/OSX 10.13.2


iOS 9.1/Xcode 7.1/Swift 2.1/OSX 10.10.5:

Метод titleEdgeInsets не работает для меня. Кадр моей кнопки плотно обнимает текст (я не указывал размер кадра), а рамка имеет красный цвет фона. После выполнения:

myButton.titleEdgeInsets = UIEdgeInsetsMake(10,10,10,10) 

красный фон сжался внутрь на 10 пикселей с каждой стороны, а это означало, что теперь часть текста была вне красном фоне. Использование отрицательных значений не повлияло на исходный размер кадра.

я смог отступы вокруг текста, фактически делая кадр больше, выполнив:

myButton.contentEdgeInsets = UIEdgeInsetsMake(5,5,5,5) 
1

для IOS 9.1/Xcode 7.1/Swift 2.1

@IBOutlet weak var ratingButton: UIButton! 

override func viewDidLoad() { 
    ratingButton.contentEdgeInsets = UIEdgeInsets(top:15,right:10,bottom:15,left:10) 

    super.viewDidLoad() 
} 
22

IOS 10 и Swift 3 пример

протестирована и работает на IOS 11 и Swift 4.

refineButton.contentEdgeInsets = UIEdgeInsets(top: 5, left: 0, bottom: 0, right: 0) 
0

Вы также можете сделать это в раскадровке:
enter image description here

+0

вопрос заданный «программно» – aeid

+0

Я не претендую на лучший ответ. Только для полноты информации. –

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