19

UIButton用 +buttonWithType:

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

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

任何想法将不胜感激。

4

7 回答 7

47

你试过了button.enabled = NO;吗?

斯威夫特 5.0

button.isEnabled = false
于 2009-01-01T17:11:11.933 回答
27

还有一些国家:

   button.highlighted = NO;
   button.selected = NO;
于 2011-11-02T22:35:17.017 回答
4

目标 C:

button.selected = Yes;
button.highlighted = NO;
button.enabled = Yes;

斯威夫特 4:

button.isSelected = true 
button.isEnabled = true

你也可以使用:(swift 4)

 if (button.state == .selected) {
   //do something
 }
于 2019-02-26T10:02:33.663 回答
3

您可以手动设置 UIButton 的状态。

UIButton *btnCheck=[UIButton buttonWithType:UIButtonTypeCustom];

if(btncheck isselected])
{
    btncheck.selected=FALSE;
}
else
{
    btncheck.selected=TRUE;
}

您可以根据您的要求对 UIButton 进行操作,例如在选择 UIButton 和未选择 UIButton 时执行一些操作。

希望对你有帮助....

于 2012-10-23T07:50:59.940 回答
2

对于 Swift 3,您可以使用

button.isSelected = true

于 2017-01-13T21:38:02.447 回答
0

对于到达这里希望更改按钮“状态”(而不是“启用”)的任何人。Stephen 是正确的“这个属性是只读的——没有对应的 setter 方法。”

您真正要设置的是按钮单元格的状态。

[[myNSButtonOutlet cell] setState: NSOnState];  //Options NSOnState, NSOffState, NSMixedState
于 2013-07-23T16:03:06.717 回答
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
}
于 2021-03-17T04:42:47.527 回答