【发布时间】:2014-09-07 18:58:57
【问题描述】:
我正在尝试模仿 iPhone 秒表应用的按钮行为。所以我在按钮的 Touch Down 事件中添加了以下代码。
if ([sender.titleLabel.text isEqualToString:@"Start"])
{
[sender setTitle:@"Stop" forState:UIControlStateNormal];
[sender setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
}
else
{
[sender setTitle:@"Start" forState:UIControlStateNormal];
[sender setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
}
但问题是,一旦按下按钮,文本和颜色就不会改变,我理解这是因为我有状态,forState:UIControlStateNormal。因此,在上面的代码中我替换了
forState:UIControlStateNormal
无处不在
forState:UIControlStateHighlighted|UIControlStateNormal
但现在的问题是,只要按下按钮,它就会显示“停止”,但一旦我松开按钮,它就会切换回“开始”。我不明白这种行为。任何帮助将不胜感激。
【问题讨论】:
-
嗯,我能够通过在 if 条件中使用变量 isRunning = YES/NO 而不是在 titleLabel.text 上进行条件来解决问题。因此,我确实赞扬了 Signo,因为他提出了类似的方法。但我仍然想了解为什么上述代码的行为与我解释的一样。
标签: ios objective-c uibutton