Ios 选中时,UIButton标签不考虑上一个动画的完成处理程序设置的文本

Ios 选中时,UIButton标签不考虑上一个动画的完成处理程序设置的文本,ios,iphone,animation,Ios,Iphone,Animation,在_menuButton的touchUpInside调用中,我执行了一个动画来显示带有完成块的菜单,以将菜单的标签从“打开”更改为“关闭”。该动画工作正常,但当你按下菜单按钮时,它会立即从“关闭”变为“菜单”,即使用户取消点击或滑下按钮。按钮标签的初始文本为“菜单” 不确定这是否有区别,但我对_menuButton的属性是: @property (weak, nonatomic) IBOutlet UIButton *menuButton; 要加载的动画菜单: [UIView anim

在_menuButton的touchUpInside调用中,我执行了一个动画来显示带有完成块的菜单,以将菜单的标签从“打开”更改为“关闭”。该动画工作正常,但当你按下菜单按钮时,它会立即从“关闭”变为“菜单”,即使用户取消点击或滑下按钮。按钮标签的初始文本为“菜单”

不确定这是否有区别,但我对_menuButton的属性是:

@property (weak, nonatomic) IBOutlet UIButton *menuButton;
要加载的动画菜单:

    [UIView animateWithDuration:0.50
                     animations:^{
                         [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
                         _menuButton.center = CGPointMake(_menuButton.center.x + 120, _menuButton.center.y);
                         _quitButton.center = CGPointMake(_quitButton.center.x + 215, _quitButton.center.y);
                         _rulesButton.center = CGPointMake(_rulesButton.center.x + 215, _rulesButton.center.y);
                         _preferencesButton.center = CGPointMake(_preferencesButton.center.x + 215, _preferencesButton.center.y);
                         _quitButton.alpha = 1.0f;
                         _rulesButton.alpha = 1.0f;
                         _preferencesButton.alpha = 1.0f;
                         _menuButton.alpha = 1.0f;
                     } completion:^(BOOL finished) {
                         _menuButton.titleLabel.text = @"close";
                     }];
    [UIView animateWithDuration:0.50
                     animations:^{
                         [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
                         _menuButton.center = CGPointMake(_menuButton.center.x - 120, _menuButton.center.y);
                         _quitButton.center = CGPointMake(_quitButton.center.x - 215, _quitButton.center.y);
                         _rulesButton.center = CGPointMake(_rulesButton.center.x - 215, _rulesButton.center.y);
                         _preferencesButton.center = CGPointMake(_preferencesButton.center.x - 215, _preferencesButton.center.y);
                         _quitButton.alpha = 0.0f;
                         _rulesButton.alpha = 0.0f;
                         _preferencesButton.alpha = 0.0f;
                         _menuButton.alpha = 0.6f;
                     } completion:^(BOOL finished) {
                         _menuButton.titleLabel.text = @"menu";
                     }];
要卸载的动画菜单:

    [UIView animateWithDuration:0.50
                     animations:^{
                         [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
                         _menuButton.center = CGPointMake(_menuButton.center.x + 120, _menuButton.center.y);
                         _quitButton.center = CGPointMake(_quitButton.center.x + 215, _quitButton.center.y);
                         _rulesButton.center = CGPointMake(_rulesButton.center.x + 215, _rulesButton.center.y);
                         _preferencesButton.center = CGPointMake(_preferencesButton.center.x + 215, _preferencesButton.center.y);
                         _quitButton.alpha = 1.0f;
                         _rulesButton.alpha = 1.0f;
                         _preferencesButton.alpha = 1.0f;
                         _menuButton.alpha = 1.0f;
                     } completion:^(BOOL finished) {
                         _menuButton.titleLabel.text = @"close";
                     }];
    [UIView animateWithDuration:0.50
                     animations:^{
                         [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
                         _menuButton.center = CGPointMake(_menuButton.center.x - 120, _menuButton.center.y);
                         _quitButton.center = CGPointMake(_quitButton.center.x - 215, _quitButton.center.y);
                         _rulesButton.center = CGPointMake(_rulesButton.center.x - 215, _rulesButton.center.y);
                         _preferencesButton.center = CGPointMake(_preferencesButton.center.x - 215, _preferencesButton.center.y);
                         _quitButton.alpha = 0.0f;
                         _rulesButton.alpha = 0.0f;
                         _preferencesButton.alpha = 0.0f;
                         _menuButton.alpha = 0.6f;
                     } completion:^(BOOL finished) {
                         _menuButton.titleLabel.text = @"menu";
                     }];
提供询问和设置标题的方法。您要找的是:

- (void)setTitle:(NSString *)title forState:(UIControlState)state

更改
\u菜单按钮.titleLabel.text=@“关闭”

[_menuButton setTitle:@"close" forState:normal];

其他人已经讨论了更改按钮标题的适当技术,因此我不想再讨论这个问题。我注意到您正在完成块中设置
标题
。如果要设置文本更改的动画,可以使用。这是制作不可设置动画的属性的一种有用方法。很好的建议。我喜欢这个主意。谢谢