Я пытаюсь изменить заголовок UIButton
, который я создал программно, когда пользователь щелкает его. Итак, это мой код для создания UIButton
:
myButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, parentView.frame.size.width, parentView.frame.size.height)];
[myButton setBackgroundColor:[UIColor blackColor]];
[myButton setAlpha:0.7];
[myButton setTitle:@"Hello" forState:UIControlStateNormal];
[myButton addTarget:self action:@selector(userClicked:) forControlEvents:UIControlEventTouchUpInside];
[parentView addSubview:myButton];
И в моем методе userClicked:
я делаю:
-(void) userClicked:(UIButton*)button
{
NSLog(@"USER CLICKED!!!");
if ([NSThread isMainThread])
{
NSLog(@"is main thread");
}
[button setTitle:@"Bye" forState:UIControlStateHighlighted];
[button setTitle:@"Bye" forState:UIControlStateNormal];
[button setTitle:@"Bye" forState:UIControlStateSelected];
[self someLengthyComputation];
}
Странно то, что я вижу напечатанные сообщения журнала:
USER CLICKED!!!
isMainThread
Но название кнопки не меняется! Что я делаю неправильно?
РЕДАКТИРОВАТЬ: установка заголовка для нескольких состояний также не работает.
EDIT2: если я напечатаю описание кнопки в окне отладчика Xcode, оно покажет правильный заголовок!
Printing description of button->_titleView:
<UIButtonLabel: 0xa4c9310; frame = (95 216; 130 22); text = 'Bye'; clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xa44f080>>
UIView
изUIViewController
- person neutrino   schedule 14.11.2013UIControlStateHighlited
! - person neutrino   schedule 14.11.2013