当前位置 : 主页 > 手机开发 > ios >

ios – UIScreenEdgePanGestureRecognizer在自定义键盘扩展中不起作用

来源:互联网 收集:自由互联 发布时间:2021-06-11
问题 我无法使用UIScreenEdgePanGestureRecognizer识别自定义键盘扩展中屏幕右边缘或左边缘的边缘滑动.我创建了一个新项目来测试它.其他UIGestureRecognizer的工作正常,如下所述. 例 @implementatio
问题

我无法使用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,我会看到在控制台中处理的手势.我可以使用UIPanGestureRecognizer,它只接受在屏幕边缘附近开始的手势.

Kiwi Keyboard使用这样的解决方法.

警告:UIPanGestureRecognizer仅在self.view具有背景颜色时才有效.

据我所知,尽管名称边缘,UIScreenEdgePanGestureRecognizer的边缘必须设置为单边. UIRectEdgeAll不起作用,你必须为每个边创建一个UIScreenEdgePanGestureRecognizer,你不能将OR边缘放在一起.
网友评论