我有一个简单的按钮,每个UIControlState
s 有两个图像。我希望此按钮充当控件和指示器,以便我可以按下它 - “激活”并再次按下“停用”,而其他一些功能可能会导致它被关闭(“停用”)。我的问题是如何将其状态从选中更改为未选中?
更改selected
属性不会解决问题:)
问问题
226 次
2 回答
1
您可以禁用该按钮,使其无法按下。
yourButton.enabled = NO;
并且当您希望它恢复为可按下时,您可以启用它
yourButton.enabled = YES;
于 2012-12-23T15:01:03.230 回答
0
最简单的方法是将按钮视为开关并根据开关的开/关更改其状态。例如使用 BOOL 变量,该变量在按钮触摸时获取其值 YES 或 NO,而根据它按钮获取其图像。
- (void) buttonTouched:(id)sender
{
switchOn = !switchOn;
UIImage *buttonImage = nil;
if (switchOn == YES)
{
buttonImage = [UIImage imageNamed:@"on.png"];
}
else
{
buttonImage = [UIImage imageNamed:@"off.png"];
}
[myButton setImage:buttonImage forState:UIControlStateNormal];
[myButton setImage:buttonImage forState:UIControlStateSelected];
}
如果您需要以编程方式设置按钮“禁用”:
- (void) setButtonDisabled
{
switchOn = YES; //calling buttonTouched: will turn it to NO
[self buttonTouched:nil];
}
于 2012-12-23T15:09:15.913 回答