我想创建一个手势,以便当用户双击屏幕时所有按钮都会消失,直到再次双击它......
已经搜索了答案,但我想我需要更加努力......请帮助哈哈
如果您能恭敬地指定 .h 和 .m 中的内容,将不胜感激...
再次抱歉愚蠢的问题......
你试过button.hidden = YES;
吗?
了解如何使用 NSTimmer 或 sleep() 函数来创建双击之间的延迟。
如果您打算让按钮动画进出,那么您可能会发现[button setAlpha:0]
并且
[button setAlpha:1]
更有用,请原谅粗略的示例:
- methodTheDoubleTapGuestureCalls
{
if (button.alpha == 0)
[UIView animateWithDuration:0.5 animations:^{
[button.alpha setAlpha:1];
}
}
}
如果您对手势感到困惑,那么在 iOS 5 中,您可以将手势识别器拖到 Interface Builder 中的视图上,设置您感兴趣的手势,然后将其链接到选择器。
试听UIGestureRecognizer
课。
此实现将允许您识别不同的预定义用户交互。
UITapGestureRecognizer
是您需要的子类。
在您的控制器中,您可以执行以下操作:
// Do this in your viewDidLoad
// Instance variable
recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap)];
[recognizer setMinimumNumberOfTouches:2];
[recognizer setMaximumNumberOfTouches:2];
并为按钮添加一个方法:
- (void) doubleTap {
//Hide/unhide buttons
}
对于按钮,应首先将它们添加为插座(带有关键字 IBOutlet 的实例变量),然后您应该将它们添加到您的视图中。确保将它们链接起来。见这里。
当您将它们链接起来时,您可以使用以下语句来隐藏/取消隐藏它们。
第一个选项:
buttonOne.hidden = !buttonOne.hidden
buttonTwo.hidden = !buttonTwo.hidden
第二种选择:
//Add a instance variable hideButtons of type BOOL. I prefer this, your always sure the hidden value for each button has the same value.
hideButtons = !hideButtons
buttonOne.hidden = hideButtons
buttonTwo.hidden = hideButtons
在您的 viewDidLoad 中,您应该明确地将 hideButtons 设置为您的初始值。虽然当布尔值为 false 时不需要,但为了清楚起见,我总是这样做。
希望这会有所帮助。