我已经制作了一个带有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;
我的问题是我点击它后无法点击,我想在点击另一个按钮后重新启用它。
答案 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
个案,因为您已经获得了点击按钮。