0

我有 4 个按钮。当它们被录音时,它们各自在其下方创建一个 UIView,它们在按钮下展开。我希望在第二次按下按钮时视图恢复到原来的状态。这是怎么做到的?

4

4 回答 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事件的此方法,但您必须将返回类型从 更改voidIBAction

而且我认为这种情况还有其他几种解决方案,但这是更快且最容易解释的解决方案。

于 2013-05-16T20:39:09.330 回答
0

您只需调用即可删除视图

[viewUnderButton removeFromSuperview];
于 2013-05-16T20:23:50.067 回答
0

将每个标签按钮设置为 0,按下按钮时将其更改为相反的值。这是您将得到的:

  1. 第一次按下按钮:按钮的标签 = 0,展开视图并将其变为 1。
  2. 第二次按下按钮:按钮的标签 = 1,折叠它并将其变为 0。

因此,您不必为每个按钮创建一个布尔值,但您可以使用按钮的标签变量。代码应该是这样的。

- (void)handleButton:(UIButton *)button{
    if(button.tag == 0) { <expandButton> }
    else                { <collapseButton> }

    button.tag = !button.tag;
}
于 2013-05-16T20:27:37.777 回答