클라이언트가 왼쪽/오른쪽으로 스 와이프하면 내 코드를 호출해야합니다 (즉, handleRightEdgeGesture
에서 로그 인쇄). 그것은 일어나지 않습니다. 왜 그런가요?WkWebView에서 스 와이프 절편을 가로 채기
여기에 제가 지금까지 가지고있는 코드가 있습니다.
#import "ViewController.h"
@import App;
@interface ViewController()
@end
@interface ViewController() <UIGestureRecognizerDelegate> {
CGFloat _centerX;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// track swipe left/right gestures
UIScreenEdgePanGestureRecognizer *leftEdgeGesture = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleLeftEdgeGesture:)];
leftEdgeGesture.edges = UIRectEdgeLeft;
leftEdgeGesture.delegate = self;
[self.view addGestureRecognizer:leftEdgeGesture];
UIScreenEdgePanGestureRecognizer *rightEdgeGesture = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleRightEdgeGesture:)];
rightEdgeGesture.edges = UIRectEdgeRight;
rightEdgeGesture.delegate = self;
[self.view addGestureRecognizer:rightEdgeGesture];
// launch the webview
self.productURL = @"http://localhost:3010";
NSURL *url = [NSURL URLWithString:self.productURL];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
_webView = [[WKWebView alloc] initWithFrame:self.view.frame];
//_webView.allowsBackForwardNavigationGestures = TRUE;
[_webView loadRequest:request];
_webView.frame = CGRectMake(self.view.frame.origin.x,self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
// add the gesture trackers to the webview
[_webView addGestureRecognizer:rightEdgeGesture];
[_webView addGestureRecognizer:leftEdgeGesture];
[self.view addSubview:_webView];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)handleLeftEdgeGesture:(UIScreenEdgePanGestureRecognizer *)gesture {
// Get the current view we are touching
if(UIGestureRecognizerStateBegan == gesture.state ||
UIGestureRecognizerStateChanged == gesture.state) {
// CGPoint translation = [gesture translationInView:gesture.view];
NSLog(@"DEBUG: gesture left complete %@", nil);
} else { // cancel, fail, or ended
// reset
NSLog(@"DEBUG: gesture left reset %@", nil);
}
}
- (void)handleRightEdgeGesture:(UIScreenEdgePanGestureRecognizer *)gesture {
// Get the current view we are touching
if(UIGestureRecognizerStateBegan == gesture.state ||
UIGestureRecognizerStateChanged == gesture.state) {
// CGPoint translation = [gesture translationInView:gesture.view];
// gensture complete?
NSLog(@"DEBUG: gesture right complete %@", nil);
} else { // cancel, fail, or ended
// reset
NSLog(@"DEBUG: gesture right reset %@", nil);
}
}
@end