問題
UIScreenEdgePanGestureRecognizer
カスタム キーボード拡張機能で、画面の右端または左端からのエッジ スワイプを認識するために を使用できません。これをテストするために新しいプロジェクトを作成しました。以下で説明するように、 OtherUIGestureRecognizer
は正常に動作します。
例
@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");
}
サンプル プロジェクトを Github でダウンロード
考えられる回避策
UIPanGestureRecognizer
aまたは aに変更すると、コンソールUITapGestureRecognizer
に表示されます。画面の端近くから始まるジェスチャのみを受け入れる をgesture handled
使用できます。UIPanGestureRecognizer
Kiwi Keyboardは、このような回避策を使用します。
警告:は背景色があるUIPanGestureRecognizer
場合にのみ機能します。self.view