make按钮切换方法 - objective-c

时间:2013-05-16 20:22:07

标签: ios objective-c cocoa-touch

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

4 个答案:

答案 0 :(得分:1)

设置实例BOOL并相应地翻转它。在IBAction中,按钮被绑定以检查BOOL并调用适当的方法来调整视图。

答案 1 :(得分: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

我认为这个案例还有其他一些解决方案,但这是更快的解决方案。

答案 2 :(得分:0)

您只需拨打

即可删除视图
[viewUnderButton removeFromSuperview];

答案 3 :(得分:0)

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

  1. 第一次按下按钮:按钮的标签= 0,展开视图并将其转为1.
  2. 第二次按下按钮:按钮的标签= 1,将其折叠并将其变为0.
  3. 所以你不必为每个按钮创建一个bool,但你可以使用你的按钮的标签变量。 代码应该是这样的。

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