繁体   English   中英

轻按UIButton的标题

[英]Toggle the title of a UIButton when it is tapped

我想要一个UIButton,当点击以将其标题更改为“ Restart”,而再次点击以将其标题更改为“ Stop”时。 这段代码我将Button标题更改为“ Restart”,但是当我再次点击按钮时,什么也没有发生。

-(IBAction)restartPressed{
    if (self.restart){
      [self.restart setTitle:"@Restart" forState:UIControlStateNormal];
    else {
      [self.restart setTitle:"@Stop" forState:UIControlStateSelected];
    }
  }

您需要同时设置两次UIControlStateNormal的状态。 UIControlStateSelected是一种状态,可见大麦。

声明一个变量,该变量在每次按下按钮时更新。

@property (nonatomic, assign) BOOL isRestart;

比设置上述声明值的正确状态的标题。

 - (IBAction) restartPressed {
    self.isRestart = !self.isRestart;
    if (self.isRestart){
      [self.restart setTitle:@"Restart" forState:UIControlStateNormal];
    } else {
      [self.restart setTitle:@"Stop" forState:UIControlStateNormal];
   }
}

另外,请确保调用了restartPressed函数。

您可以使用全局布尔变量:

var isButtonClicked = false

@IBAction func restartClicked(_ sender: AnyObject) {

    isButtonClicked = !isButtonClicked
    restartButton.setTitle(isButtonClicked ? "Stop" : "Restart", for: .normal)
}

代码迅速。 您可以将其转换为目标C

全局声明int i和int rem:

@interface ViewController ()
{
    int i;
    int rem;
}

然后在重新启动按钮Action中添加以下代码:

- (IBAction)restartPressed:(id)sender

{
    if((rem = i % 2 == 0))
    {
        [_restartBtn setTitle:@"restart"  forState:UIControlStateNormal];
        i=i+1;
    }
    else
    {
        [_restartBtn setTitle:@"stop"  forState:UIControlStateNormal];
        i=i+1;
    }

}

希望这可以帮助 !

尝试这个 :

在ViewDidLoad中

[btn setTitle:@"Restart" forState:UIControlStateSelected];
[btn setTitle:@"Stop" forState:UIControlStateNormal];


- (IBAction) restartPressed:(UIButton *)btn {
    btn.selected = !btn.isSelected;
}

暂无
暂无

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

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