手动设置UIButton状态

时间:2009-01-01 16:45:14

标签: ios objective-c iphone cocoa-touch uibutton

UIButton使用+ buttonWithType:

我需要弄清楚的是如何手动更改按钮状态。有时我需要将其设置为“禁用”。

我阅读了UIButton文档,但我似乎无法找到有关手动设置按钮状态的任何信息。

任何想法都会非常感激。

8 个答案:

答案 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
}