这是我第一次在这里寻求帮助,虽然我过去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;
}
我的简单问题是:如果用户再次点击屏幕,如何取消隐藏/再次显示插座?
答案 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;
}
}