11

如果字典中不存在该键,我需要禁用一个按钮。我使用了 UIButton 的 setEnabled 功能,但仍显示已设置为默认值的图像。

代码如下所示:

if([self.InfoDictionary objectForKey:ButtonExist])
{
    [button1 setEnabled:YES];
}
else
{
    [button1 setEnabled:NO];
}

当我在模拟器中运行时,图像仍然出现。在这方面需要一些指导。

4

5 回答 5

12

enable = YESbutton 的属性在单击时执行操作。

enable = NO属性防止在单击时执行操作。

如果要隐藏按钮,则可以将hidden属性设置为YES,反之亦然。隐藏的其他方法是将alpha属性设置为0(不可见)或1(可见)

于 2013-03-21T04:52:22.537 回答
7

你也可以设置userInteractionEnabled属性UIButton

 if([self.InfoDictionary objectForKey:ButtonExist])
    {
        [button1 setEnabled:YES];
        button1.userInteractionEnabled = YES;
    }
    else
    {
        [button1 setEnabled:NO];
        button1.userInteractionEnabled = NO;
    }
于 2013-03-21T04:46:26.607 回答
2

采用 :

if([self.InfoDictionary objectForKey:ButtonExist])
{
    [button1 setHidden:YES];
}
else
{
    [button1 setHidden:NO];
}

如果要隐藏 UIButton 的 UIImage 则:

if([self.InfoDictionary objectForKey:ButtonExist])
    {
        [button1 setBackgroundImage:[UIImage imageNamed:@"YOUR IMAGE"] forState:UIControlStateNormal];
    }
    else
    {
        [button1 setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
    }

希望这会帮助你。祝一切顺利 !!!

于 2013-03-21T04:46:18.780 回答
1

在 swift3 中:

self.button.isEnabled = false
于 2017-05-24T12:45:27.680 回答
0

我自己也遇到了这个。问题是我无意中启用了手势处理程序中的按钮以进行点击!

寻找这样的副作用。

于 2014-07-10T14:49:24.770 回答