我正在学习 iOS 开发,正在研究UIGestureRecognizer
's.
我有一个看法。当您点击该视图时,我想显示 aUIPopoverController
并且我还希望它像 a 一样UIButton
在您按下它时“突出显示”。
我想这样做的方法是使用 2 UIGestureRecognizer
- aUITapGestureRecognizer
和 aUILongPressGestureRecognizer
我遇到的问题是 highlight 方法会立即被调用(我想要的),但是如果我将手指移动得足够远,UITapGestureRecognizer
就会被取消。那时,我想调用另一个方法 ( unhighlight
) 来恢复UIView
的初始背景颜色,但我不知道如何做到这一点。
我对此很陌生,所以这个问题可能是基本的,我感谢任何人可以给我的任何帮助。
在UIViewController
:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(togglePopover)];
[self.view addGestureRecognizer:tap];
UILongPressGestureRecognizer *press = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(highlight)];
press.minimumPressDuration = 0.f; //highlight immediately
press.delegate = self; //set the delegate to self
[self.view addGestureRecognizer:highlight];
//the delegate part of the UIViewController
- (BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldRecognizeSimultaneouslyWithOtherGestureRecognizer:(UIGestureRecognizer*)otherGestureRecognizer {
return YES; //allows allow simultaneous recognition of gestures on this view
}