繁体   English   中英

点按时按钮文本会恢复

[英]Button text reverts when tapped

我有一个按钮,在整个程序中他改变了他的名字。
原名是“行”。
然后重命名为“bar”。

当命名为“bar”并按下它时执行以下代码。
在代码中是变量_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) {
                     }];

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

我只是在_bt2时按下此按钮的名称。 我不再使用代码的一部分,因为名字来自故事板

按下_bt2时,运行以下代码

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

有谁知道如何解决?

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

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

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

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

因此, _bt3.titleLabel.text直接设置_bt3.titleLabel.text ,而是需要告诉按钮它应该在正常状态下显示的文本:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM