点击时,我想要一个UIButton将其标题更改为“重新启动”,再次点击时将其标题更改为“停止”。这段代码我将Button标题更改为“Restart”,但是当我再次点击按钮时没有任何反应。
-(IBAction)restartPressed{
if (self.restart){
[self.restart setTitle:"@Restart" forState:UIControlStateNormal];
else {
[self.restart setTitle:"@Stop" forState:UIControlStateSelected];
}
}
答案 0 :(得分:4)
您需要将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
函数。
答案 1 :(得分:3)
您可以采用全局布尔变量:
var isButtonClicked = false
@IBAction func restartClicked(_ sender: AnyObject) {
isButtonClicked = !isButtonClicked
restartButton.setTitle(isButtonClicked ? "Stop" : "Restart", for: .normal)
}
代码很快。您可以将其转换为目标C
答案 2 :(得分:0)
全局声明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;
}
}
希望这有帮助!
答案 3 :(得分:0)
试试这个:
在ViewDidLoad
中[btn setTitle:@"Restart" forState:UIControlStateSelected];
[btn setTitle:@"Stop" forState:UIControlStateNormal];
- (IBAction) restartPressed:(UIButton *)btn {
btn.selected = !btn.isSelected;
}