我无法使用UIScreenEdgePanGestureRecognizer
识别自定义键盘扩展程序中屏幕右边缘或左边缘的边缘滑动。我创建了一个新项目来测试它。其他UIGestureRecognizer
的工作正常,如下所述。
@implementation KeyboardViewController // A subclass of UIInputViewController
...
-(void)viewDidLoad {
...
UIScreenEdgePanGestureRecognizer *gestureRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture)];
[gestureRecognizer setEdges:UIRectEdgeAll];
[self.view addGestureRecognizer:gestureRecognizer];
}
- (void)handleGesture
{
NSLog(@"gesture handled");
}
如果我将其更改为UIPanGestureRecognizer
或UITapGestureRecognizer
,我会在控制台中看到gesture handled
。我可以使用只接受在屏幕边缘附近开始的手势的UIPanGestureRecognizer
。
Kiwi Keyboard使用这样的解决方法。
警告: UIPanGestureRecognizer
仅在self.view
具有背景颜色时才有效。
答案 0 :(得分:7)
据我所知,尽管有名称边缘,但UIScreenEdgePanGestureRecognizer
' s edges
必须设置为单边。 UIRectEdgeAll
无法使用,您必须为每条边创建UIScreenEdgePanGestureRecognizer
,您可以将OR边缘放在一起。