Как добиться заполнения UIButton / UILabel в приложении для iPhone
Автор вопроса: CommunityОтветов: 10
У меня есть различные представления в моем приложении для iPhone, которые требуют заполнения, например настраиваемый UIButton с текстом, выровненным по левому краю, и UILabel с цветом фона.
Это может быть действительно глупый вопрос, но как я могу применить "отступ", чтобы сместить текст с левого края?
Я устал безуспешно использовать границы и т. Д.
Я знаю, что могу создать обертку для моего UILabel с цветом фона, но это кажется излишним.
Большое спасибо.
Марко Армент написал в Твиттере очень простой подкласс UILabel, который добавляет отступы в стиле UIEdgeInsets в рисунок ярлыка: он на gist.github как IPInsetLabel. cbowns 25.05.2012
Чтобы установить отступ в UIButton тексте, вам нужно использовать свойство UIButtoncontentEdgeInsets.
В раскадровке, чтобы установить вставку содержимого, выполните следующие действия:
Выберите контроллер представления, затем выберите UIButton
Перейдите на панель утилит (Command + Option + 0) и выберите Attributes Inspector (Command + Option + 4).
Теперь выберите Контент в Edge и установите Inset в соответствии с вашими требованиями (см. Снимок экрана).
Ответ 4 · рейтинг 8 · Brody Robertson
Чтобы добавить заполнение в UILabel, наиболее гибким подходом является создание подкласса UILabel и добавление свойства edgeInsets. Затем вы устанавливаете желаемые вставки, и метка будет нарисована соответствующим образом.
(Это упрощение ответа Броуди, который также работает с автоматическим раскладкой.)
Ответ 7 · рейтинг 2 · cleverbit
CGRectInset - ваш друг. Вы можете установить отрицательные 'вставки' для создания отступов:
[self sizeToFit];
CGRect rect = self.frame;
rect = CGRectInset( rect, -6.f, -5.f); // h inset, v inset
self.frame = rect;
Ответ 8 · Alan Taylor
Я пытаюсь добиться того же, то есть "проложить" UILabel. Я пытался реализовать решение, которое Тоби опубликовал выше, но, похоже, не могу найти, куда это нужно делать. UILabel, с которым я работаю, выровнен по левому краю - это то, что вызывает проблему?
Я пробовал использовать это в viewDidLoad и даже в подклассе UILabel в методе: