使用单击手势隐藏/取消隐藏Xcode中的按钮或插座

时间:2012-04-29 18:53:08

标签: xcode hide show uitapgesturerecognizer

这是我第一次在这里寻求帮助,虽然我过去6个月一直潜伏在这个论坛上。所以这里有一个简单的,我知道之前曾多次被问过,但没有一个带有真正有用的简单答案。希望也许这里有人能够帮助我和许多其他需要帮助的人提供帮助。

所以这就是我已经做过的隐藏网点的事情:

标题文件中

@interface tapgestureViewController : UIViewController {

IBOutlet UIButton *btn1;
IBOutlet UIButton *btn2;
IBOutlet UITextView *text;

}

-(IBAction)hideOutlets;

@end

并在实施文件中:

-(IBAction)hideOutlets:(UITapGestureRecognizer*)singleTap {

btn1.hidden = YES;
btn2.hidden = YES;
text.hidden = YES;

}

我的简单问题是:如果用户再次点击屏幕,如何取消隐藏/再次显示插座?

1 个答案:

答案 0 :(得分:1)

我认为最简单的方法是使用:

-(IBAction)hideOutlets:(UITapGestureRecognizer*)singleTap 
{
    btn1.hidden = !btn1.hidden;
    btn2.hidden = !btn2.hidden;
    text.hidden = !text.hidden;
}

这将简单地否定你当前的布尔状态并且你完成了:)

编辑: 要检查触摸是否在表单上的某个位置而不是按钮或文本字段,请尝试使用此选项。它应该工作。无需再使用UITapGestureRecognizer

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint loc = [touch locationInView:[touch view]];
    if (!(CGRectContainsPoint(btn1.frame, loc) || CGRectContainsPoint(btn2.frame, loc) || CGRectContainsPoint(text.frame, loc)))
    {
        btn1.hidden = !btn1.hidden;
        btn2.hidden = !btn2.hidden;
        text.hidden = !text.hidden;
    }
}