Как добавить padding-left на UIButton, созданный программно?
у меня возникли проблемы с добавлением левого отступа на UIButton. У меня есть UIButton с UIControlContentHorizontalAlignmentLeft. Я хочу, чтобы текст отображался с левой стороны, но он слишком левый. когда я даю границу, это не выглядит хорошо. Я хотел бы дать некоторое дополнение к тексту о 5px, как в CSS. Я искал решение, но не могу найти его специально для UIButton.
Заранее спасибо за помощь.
6 ответов:
titleEdgeInsets поля вставки или начала для краев прямоугольник чертежа заголовка кнопки.
@property (nonatomic) UIEdgeInsets titleEdgeInsets
Обсуждение использовать этот свойство для изменения размера и изменения положения эффективного прямоугольника чертежа для название кнопки. Для каждого из них можно указать разное значение четыре вставки (сверху, слева, снизу, справа). Положительное значение сжимается, или вставки, что край-перемещение его ближе к центру кнопки. Один отрицательное значение расширяет или смещает это ребро. Используйте Функция UIEdgeInsetsMake для построения значения этого свойства. Этот значение по умолчанию-UIEdgeInsetsZero.
в наличии доступно в iOS 2.0 и более поздних версиях.
Объявлено В UIButton.h
давай попробуем :)
[myButton setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 5.0, 0.0, 0.0)];кроме того, если вы используете пользовательскую кнопку, есть такая вещь, как вставки контента и вставки изображения.
если вы сделали это здесь ищет Свифт. Это действительно 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
вот лучший ответ на:
- избегайте усечения заголовка кнопки
- избегайте названия от расширения за пределы вид кнопки
- сделайте рамку кнопки хорошо работать с изображением.
код:
// Obj-C CGFloat padding = 10.0f; [myButton setTitleEdgeInsets:UIEdgeInsetsMake(0, padding, 0, -padding)]; [myButton setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, padding)]; // Swift let padding: CGFloat = 10.0 myButton.titleEdgeInsets = UIEdgeInsets(top: 0.0, left: padding, bottom: 0.0, right: -padding) myButton.contentEdgeInsets = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: padding)
вот еще один пример, как решить это:
[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);


Comments