如何以编程方式在iPhone中单击一次禁用按钮

时间:2016-01-20 09:26:24

标签: ios iphone

我已经制作了一个带有5个按钮的页脚,我想在单击之后禁用该按钮,直到单击另一个按钮(表示单击另一个按钮然后按钮应该重新启用它)。我发布了我的代码。

UIButton *btn = (UIButton *)sender;
NSInteger index= btn.tag;
[self setNavigationBarButtons:index];

switch (btn.tag)
{
    case 1: // all media type
    {  btn.enable=No;
        messageToBeEdit =nil;

    }
        break;
    case 2: // image type
    { btn.enable=No;
        messageToBeEdit = nil;

    }
        break;
    case 3: // video type
    { btn.enable=No;
        messageToBeEdit = nil;

    }
        break;
    case 4: // text type
    { btn.enable=No;
        //  forth button

        break;
    }
        break;
    case 5: // audio type
    {//fifth button
        btn.enable=No;
        messageToBeEdit = nil;
    }
        break;

我的问题是我点击它后无法点击,我想在点击另一个按钮后重新启用它。

2 个答案:

答案 0 :(得分:1)

您需要保留所有按钮的引用(例如Button1,Button2等)

在您的开关盒中,启用所有其他按钮。例如,如果用户点击Button1,则启用所有其他按钮,如

button2.enabled = YES;
button3.enabled = YES;
button4.enabled = YES;
button5.enabled = YES;

更好的方法是保留所有按钮的 IBOutletCollection 并循环遍历数组以启用所有其他按钮。

答案 1 :(得分:1)

- (void) tapButton:(id)sender {
    UIButton *btn = (UIButton *)sender;
    NSInteger index= btn.tag;
    [self setNavigationBarButtons:index]

    //first enable all the other buttons
    for(UIButton *b in [[btn superview] subviews]) {
        if([b isKindOfClass:[UIButton class]]) {
             b.enabled = YES; //reenable 
        }
    }

    btn.enabled = NO; //then disable tapped button
}

您在这里不需要switch个案,因为您已经获得了点击按钮。