0

我有一个简单的按钮,每个UIControlStates 有两个图像。我希望此按钮充当控件和指示器,以便我可以按下它 - “激活”并再次按下“停用”,而其他一些功能可能会导致它被关闭(“停用”)。我的问题是如何将其状态从选中更改为未选中?
更改selected属性不会解决问题:)

4

2 回答 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 回答