我有 4 个按钮。当它们被录音时,它们各自在其下方创建一个 UIView,它们在按钮下展开。我希望在第二次按下按钮时视图恢复到原来的状态。这是怎么做到的?
问问题
887 次
4 回答
1
设置一个实例 BOOL 并相应地翻转它。在 IBAction 中,按钮被绑定以检查 BOOL 并调用适当的方法来调整视图。
于 2013-05-16T20:23:59.117 回答
1
您可以使用selected
按钮的属性,例如:
-(void)yourButtonIsTapped:(UIButton*)button {
if(button.selected) { //first time
//expand the view
button.selected = NO;
}
else { // second time
//hide view
button.selected = YES;
}
}
您可以将按钮从 IB 链接到touchUpInside
事件的此方法,但您必须将返回类型从 更改void
为IBAction
。
而且我认为这种情况还有其他几种解决方案,但这是更快且最容易解释的解决方案。
于 2013-05-16T20:39:09.330 回答
0
您只需调用即可删除视图
[viewUnderButton removeFromSuperview];
于 2013-05-16T20:23:50.067 回答
0
将每个标签按钮设置为 0,按下按钮时将其更改为相反的值。这是您将得到的:
- 第一次按下按钮:按钮的标签 = 0,展开视图并将其变为 1。
- 第二次按下按钮:按钮的标签 = 1,折叠它并将其变为 0。
因此,您不必为每个按钮创建一个布尔值,但您可以使用按钮的标签变量。代码应该是这样的。
- (void)handleButton:(UIButton *)button{
if(button.tag == 0) { <expandButton> }
else { <collapseButton> }
button.tag = !button.tag;
}
于 2013-05-16T20:27:37.777 回答