Почему этот UIButton не показывает свою текстовую метку? - PullRequest
8 голосов
/ 11 июня 2010

Все в этом UIButton отрисовывается великолепно, кроме текста, который должен быть на нем.NSLog демонстрирует, что текст находится в нужном месте.Что дает?

UIButton *newTagButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[newTagButton addTarget:self action:@selector(showNewTagField) forControlEvents:UIControlEventTouchUpInside];
newTagButton.titleLabel.text = @"+ New Tag";
NSLog(@"Just set button label to %@", newTagButton.titleLabel.text);
newTagButton.titleLabel.font = [UIFont systemFontOfSize:17];
newTagButton.titleLabel.textColor = [UIColor redColor];
CGSize addtextsize = [newTagButton.titleLabel.text sizeWithFont:[UIFont systemFontOfSize:17]];
CGSize buttonsize = { (addtextsize.width + 20), (addtextsize.height * 1.2) };
newTagButton.frame = CGRectMake(x, y, buttonsize.width, buttonsize.height);
[self.mainView addSubview:newTagButton];

1 Ответ

20 голосов
/ 11 июня 2010

На UIButton есть набор API, которые следует использовать для изменения этих свойств.

TitleLabel может и будет изменяться UIButton внутри.

[button setTitle:title forState:state];
[button setTitleColor:color forState:state];
[button setTitleShadowColor:color forState:state];

Вы должны всегдаустановите эти свойства с помощью этих методов (если они доступны), а не касаясь напрямую titleLabel.Для шрифтов вы можете изменить его непосредственно в titleLabel, поскольку они не предоставляют метод в UIButton.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...