Ios 点击UIButton时切换其标题
我想要一个UIButton,当点击将其标题更改为重新启动,当再次点击将其标题更改为停止。这段代码将按钮标题更改为重新启动,但当我再次点击按钮时,什么也没有发生Ios 点击UIButton时切换其标题,ios,objective-c,cocoa-touch,uibutton,Ios,Objective C,Cocoa Touch,Uibutton,我想要一个UIButton,当点击将其标题更改为重新启动,当再次点击将其标题更改为停止。这段代码将按钮标题更改为重新启动,但当我再次点击按钮时,什么也没有发生 -(IBAction)restartPressed{ if (self.restart){ [self.restart setTitle:"@Restart" forState:UIControlStateNormal]; else { [self.restart setTitle:"@Stop"
-(IBAction)restartPressed{
if (self.restart){
[self.restart setTitle:"@Restart" forState:UIControlStateNormal];
else {
[self.restart setTitle:"@Stop" forState:UIControlStateSelected];
}
}
可以采用全局布尔变量:
var isButtonClicked = false
@IBAction func restartClicked(_ sender: AnyObject) {
isButtonClicked = !isButtonClicked
restartButton.setTitle(isButtonClicked ? "Stop" : "Restart", for: .normal)
}
代码是用swift写的。您可以将其转换为目标C您需要设置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函数。全局声明int i和int rem: @界面视图控制器 { int i; 内部rem; } 然后在重启按钮操作中添加以下代码: -IBActionrestartPressed:idsender { ifrem=i%2==0 { [\u restartbn setTitle:@restart forState:UIControlStateNormal]; i=i+1; } 其他的 { [_restartbnsettitle:@stop forState:uicontrolstateformal]; i=i+1; } } 希望这有帮助 试试这个: 在ViewDidLoad中
[btn setTitle:@"Restart" forState:UIControlStateSelected];
[btn setTitle:@"Stop" forState:UIControlStateNormal];
- (IBAction) restartPressed:(UIButton *)btn {
btn.selected = !btn.isSelected;
}