Я испытываю затруднения при добавлении оставленный дополнение на a UIButton
. У меня есть a UIButton
с UIControlContentHorizontalAlignmentLeft
. Я хочу, чтобы текст был отображен на левой стороне, но это слишком оставляют. когда я даю границу, это не выглядит хорошим. Я хотел бы дать некоторое дополнение на тексте приблизительно 5 пкс как в CSS. Я погуглил для решения, но не могу найти то особенно для UIButton
. Заранее спасибо за справку.
titleEdgeInsets вставка или поля начала для краев заголовка кнопки, тянущего прямоугольник.
@property (неатомарное) обсуждение UIEdgeInsets titleEdgeInsets
Использование это свойство, чтобы изменить размер и изменить местоположение эффективного прямоугольника рисунка для заголовка кнопки. Можно указать другое значение для каждой из четырех вставок (вершина, оставленная, нижняя часть, право). Положительное значение уменьшается, или вставки, это edge— двигать поближе его к центру кнопки. Отрицательная величина расширяется, или начала, тот край. Используйте функцию UIEdgeInsetsMake для построения значения для этого свойства. Значением по умолчанию является UIEdgeInsetsZero.
Доступность Доступный в iOS 2.0 и позже.
Заявленный В UIButton.h
Дают этому попытку :)
[myButton setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 5.0, 0.0, 0.0)];
Также, если Вы используете пользовательскую кнопку существует такая вещь как Довольный Вставки Изображения и Вставки.
Упаковывают, Вы сделали это сюда поиском Swift. Это - допустимый Swift 3.0 рџѓ
myButton.titleEdgeInsets = UIEdgeInsets(top: 0.0, left: 5.0, bottom: 0.0, right: 0.0)
, можно установить его непосредственно также. Полезно, если хотят использовать одно или два свойства.
myButton.titleEdgeInsets.top = 0
myButton.titleEdgeInsets.left = 5
myButton.titleEdgeInsets.bottom = 0
myButton.titleEdgeInsets.right = 0
В Xcode 6 можно указать вставку заголовка в IB:
Xcode 8 сообщения, если Вы хотите установить его эти вставки через интерфейсного разработчика (IB), Вы найдете эти настройки вставки в инспекторе размера вместо инспектора атрибута.
Hope это помогает.
Вот лучший ответ на:
Код:
extension UIButton {
func addLeftPadding(_ padding: CGFloat) {
titleEdgeInsets = UIEdgeInsets(top: 0.0, left: padding, bottom: 0.0, right: -padding)
contentEdgeInsets = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: padding)
}
}
Использование:
myButton.addLeftPadding(10)
Вот другой пример, как разрешить это:
[self.myButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
float padding_button = 6.0f;
UIEdgeInsets titleInsets = UIEdgeInsetsMake(0.0f, padding_button, 0.0f, -padding_button);
UIEdgeInsets contentInsets = UIEdgeInsetsMake(padding_button, 0.0f, padding_button, 0.0f);
CGFloat extraWidthRequiredForTitle = titleInsets.left - titleInsets.right;
contentInsets.right += extraWidthRequiredForTitle;
[self.myButton setTitleEdgeInsets:titleInsets];
[self.myButton setContentEdgeInsets:contentInsets];
[self.myButton sizeToFit];
Также, если Ваша кнопка имеет изображение, можно просто добавить:
[self.myButton setImage:[UIImage imageNamed:@"YourImage.png"] forState:UIControlStateNormal];
Удачи!
_myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
_myButton.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);