button文字点击时恢复

我有一个button,整个程序中,他改变了他的名字。
原来的名字是“行”。
然后重新命名为“酒吧”。

当被命名为“酒吧”,我按它执行下面的代码。
在代码中是variables_bt3。

[UIView animateWithDuration:1 delay:0 options:UIViewAnimationCurveEaseOut animations:^{ _bt1.transform = CGAffineTransformMakeTranslation(0,0); _viewBt1.transform = CGAffineTransformMakeTranslation(0,0); _bt2.transform = CGAffineTransformMakeTranslation(0,0); _viewBt2.transform = CGAffineTransformMakeTranslation(0,0); _bt3.transform = CGAffineTransformMakeTranslation(0,-_viewBt3.frame.size.height+68); _viewBt3.transform = CGAffineTransformMakeTranslation(0,-_viewBt3.frame.size.height+68); _bt4.transform = CGAffineTransformMakeTranslation(0,0); _viewBt4.transform = CGAffineTransformMakeTranslation(0,0); } completion:^(BOOL finished) { }]; 

之后神奇地出现你的名字。

我只是改变这个button的名字时按_bt2。 我不使用任何更多的代码,因为名字来自故事板

当按_bt2时运行下面的代码

 - (IBAction)bt2Pressed:(id)sender { NSLog(@"botao2"); _bt3.titleLabel.text=@"Bar"; } 

有谁知道如何解决?

问题是你直接设置_bt3.titleLabel.text 。 不要这样做。

一个button具有状态:正常,突出显示,select和禁用。 它知道每个州的文本应该是什么样的。 当_bt3更改状态时,它会设置_bt3.titleLabel.text 。 这会覆盖您对_bt3.titleLabel.text的更改。

如果不将文本设置为非正常状态,则该button将使用正常状态的文本。

当用户触摸_bt3_bt3将其状态更改为突出显示,并将_bt3.titleLabel.text设置为突出显示状态的文本。 当用户停止触摸_bt3_bt3将其状态更改为正常状态,并将_bt3.titleLabel.text设置为正常状态的文本。

因此, _bt3.titleLabel.text直接设置_bt3.titleLabel.text ,而要告诉button在正常状态下应该显示哪些文本:

 [_bt3 setTitle:@"Bar" forState:UIControlStateNormal];