问题
我无法使用 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");
}
Download my example project on Github
可能的解决方法
如果我将其更改为 UIPanGestureRecognizer
或 UITapGestureRecognizer
,我会在控制台中看到 gesture handled
。我可以使用 UIPanGestureRecognizer
,它只接受从屏幕边缘附近开始的手势。
Kiwi Keyboard使用这样的解决方法。
警告:UIPanGestureRecognizer
仅在 self.view
具有背景色时才有效。
最佳答案
据我所知,尽管名为 edges,UIScreenEdgePanGestureRecognizer
的 edges
必须设置为单边。 UIRectEdgeAll
将不起作用,您必须为每个边缘创建一个 UIScreenEdgePanGestureRecognizer
,您不能将边缘连接在一起。
关于ios - UIScreenEdgePanGestureRecognizer 在自定义键盘扩展中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26790251/