2013-06-12 2 views
14

При использовании автоматической компоновки в iOS 6 размер встроенного содержимого UIButton включает в себя около 10px отступов вокруг текста кнопки. Есть ли способ контролировать это значение заполнения? Например, я хотел бы быть в состоянии сделать что-то подобное, что бы установить отступы в 5px с каждой стороны:Как изменить по умолчанию UIButton padding при использовании автоматической компоновки

[button setPadding:UIEdgeInsetsMake(5, 5, 5, 5)]; 

Я попытался установить contentEdgeInsets, titleEdgeInsets и imageEdgeInsets, все безрезультатно. Как ни странно, указание отрицательного левого или правого значения в contentEdgeInsets, по-видимому, имеет некоторый эффект, но не верхний или нижний.

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

ответ

7

Я понимаю, что я отвечал на этот вопрос в течение двух лет назад, но я хотел бы последовать и обратите внимание, что теперь свойство contentEdgeInsets работает правильно с автозапуском. Например, следующий код создает кнопку с 20-пиксельным полем вокруг его содержимого:

button.contentEdgeInsets = UIEdgeInsetsMake(20, 20, 20, 20); 
3

Я не уверен, что вы можете сделать это без подкласса UIButton. Если вы готовы к подклассу, перекрывая этот метод может сделать трюк (я не пробовал):

- (UIEdgeInsets)alignmentRectInsets { return UIEdgeInsetsMake(5, 5, 5, 5); }

+0

Работает как очарование! –

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