Как изменить заполнение по умолчанию UIButton при использовании автоматической компоновки
При использовании автоматической компоновки в iOS 6, внутренний размер содержимого UIButton включает в себя около 10px отступов вокруг текста кнопки. Есть ли способ контролировать это значение заполнения? Например, я хотел бы сделать что-то вроде этого, которое установило бы отступы на 5 пикселей с каждой стороны:
[button setPadding:UIEdgeInsetsMake(5, 5, 5, 5)];
Я пробовал настройку contentEdgeInsets, titleEdgeInsets и imageEdgeInsets, все безрезультатно. Как ни странно, указание отрицательного левого или правого значения в contentEdgeInsets, по-видимому, имеет некоторый эффект, но не верхний или нижний.
В любом случае, я хотел бы иметь возможность указать фактическое значение заполнения как положительное число, а не настройку по умолчанию, выраженную как отрицательное число. Кто-нибудь знает, возможно ли это?
Ответы
Ответ 1
Я понимаю, что я опубликовал этот вопрос два года назад, но я хотел следить и отметить, что теперь свойство contentEdgeInsets
работает правильно с автозапуском. Например, следующий код создает кнопку с 20-пиксельным полем вокруг своего содержимого:
button.contentEdgeInsets = UIEdgeInsetsMake(20, 20, 20, 20);
Ответ 2
Я не уверен, что вы можете сделать это без подкласса UIButton. Если вы готовы к подклассу, переопределение этого метода может сделать трюк (я не пробовал это):
- (UIEdgeInsets)alignmentRectInsets {
return UIEdgeInsetsMake(5, 5, 5, 5);
}