Как изменить заполнение по умолчанию UIButton при использовании автоматической компоновки - программирование
Подтвердить что ты не робот

Как изменить заполнение по умолчанию UIButton при использовании автоматической компоновки

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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