У кого-нибудь есть идея или пример, как я могу подкласса titleLabel от UIButton
? Я хочу изменить текстовое поведение моей текстовой кнопки во время другого элемента управления. Я хочу, чтобы кнопка была выделена, тогда визуализируется только граница текста.Подклассификация titleLabel of UIButton
ответ
Вы можете создать подкласс UIButton
, в .h
, вы можете иметь пользовательский UILabel
как titleLabel
из UIButton
@property (nonatomic, strong) UILabel *nameLabel;
Если вы хотите вызвать какой-либо метод в разных состояниях UIButton
, вы можете переписать метод:
- (void)setHighlighted:(BOOL)highlighted {
self.nameLabel.backgroundColor = [UIColor redColor];
}
- (void)setSelected:(BOOL)selected {
self.nameLabel.backgroundColor = [UIColor blueColor];
}
написать простой код, чтобы показать, как заказ на UIButton
:
Спасибо Stevechen, но моя проблема - метод drawTextInRect UILabel. Когда кнопка подсвечена, должен отображаться только текст на границе. Иначе текст обычно должен отображаться. –
метод drawtextinrect (где я могу сделать свой текст, показанный только его границей) вызывается при инициализации метки. Вот почему я могу обрабатывать разные состояния кнопки –
Если у вас есть другая идея, чтобы решить мою проблему, это будет очень хорошо –
- Создание пользовательских UIButton.
- Создать UILabel
- Используйте CALayer, чтобы нарисовать границу вокруг UILabel.
- Добавить UILabel как подпункт UIButton.
Пожалуйста, обратитесь к приведенному ниже коду, который делает то же самое. Добавьте границу для соответствующего состояния кнопки.
-(void)addBorderToButtonLabel
{
CGRect labelRect = self.sampleButton.bounds;
labelRect.origin.x = 10;
labelRect.origin.y = 5;
labelRect.size.width -= 10 *2;
labelRect.size.height -= 5 * 2;
UILabel *label = [[UILabel alloc] initWithFrame:labelRect];
label.text = @"My Sample";
label.textAlignment = NSTextAlignmentCenter;
label.layer.borderColor = [UIColor greenColor].CGColor;
label.layer.borderWidth = 3.0;
[self.sampleButton addSubview:label];
}
Граница текста метки не ярлыка –
По кодированию, что вы пробовали? – dnuka
Вы должны подкласса 'UIButton' – Jasper
У меня есть подкласса UIButton, проблема в том, как изменить границу текста должна быть достигнута в drawtextinRect. Но я не знаю, как я могу назвать этот метод во время разного состояния кнопки? –