我UIButton
使用+ buttonWithType:
我需要弄清楚的是如何手动更改按钮状态。有时我需要将其设置为“禁用”。
我阅读了UIButton
文档,但我似乎无法找到有关手动设置按钮状态的任何信息。
任何想法都会非常感激。
答案 0 :(得分:45)
你试过button.enabled = NO;
吗?
答案 1 :(得分:25)
还有州:
button.highlighted = NO;
button.selected = NO;
答案 2 :(得分:6)
是不是只有state
属性?它位于UIControl
类中,它是UIButton
的超类。
编辑:oops,不,不是。文档说“这个属性是只读的 - 没有相应的setter方法。”
答案 3 :(得分:3)
您可以手动设置UIButton的状态。
UIButton *btnCheck=[UIButton buttonWithType:UIButtonTypeCustom];
if(btncheck isselected])
{
btncheck.selected=FALSE;
}
else
{
btncheck.selected=TRUE;
}
您可以根据自己的要求对UIButton进行操作,例如在选择UIButton且未选择UIButton时执行某些操作。
希望这会对你有帮助....
答案 4 :(得分:2)
对于Swift 3,您可以使用
button.isSelected = true
答案 5 :(得分:1)
目标C:
button.selected = Yes;
button.highlighted = NO;
button.enabled = Yes;
迅速4:
button.isSelected = true
button.isEnabled = true
您还可以使用:(速记4)
button.state == .selected
答案 6 :(得分:0)
对于到达这里的人来说,要改变按钮的“状态”(而不是“启用”)。斯蒂芬是正确的“这个属性是只读的 - 没有相应的setter方法。”
您真正想要设置的是按钮单元格的状态。
[[myNSButtonOutlet cell] setState: NSOnState]; //Options NSOnState, NSOffState, NSMixedState
答案 7 :(得分:0)
为了满足在选择时设置不同按钮外观的需要,请设置 isSelected = true
。
以下是使用问答游戏环境设置状态并根据该状态更改 UIButton
外观的示例:
if sender.titleLabel?.text == correctAnswer {
sender.isSelected = true
// Set title color and image based on 'selected' state.
sender.setTitleColor(.systemBlue, for: .selected)
sender.setImage(Utilities.sharedInstance.returnAnswerButtonImage(for: .correctlyAnswered).withRenderingMode(.alwaysOriginal), for: .selected)
sender.backgroundColor = .white
sender.tintColor = .systemBlue
// moveToNextQuestion()
} else {
sender.isSelected = true
sender.setTitleColor(.systemBlue, for: .selected)
sender.setImage(Utilities.sharedInstance.returnAnswerButtonImage(for: .incorrectlyAnswered).withRenderingMode(.alwaysOriginal), for: .selected)
sender.backgroundColor = .red
sender.tintColor = .systemBlue
}