gpt4 book ai didi

ios - 在 WkWebView 中拦截滑动边缘

转载 作者:行者123 更新时间:2023-11-29 11:47:30 30 4
gpt4 key购买 nike

当客户端向左/向右滑动时,在 webview 中它应该调用我的代码(即从 handleRightEdgeGesture 打印日志)。它不会发生。这是为什么?

这是我目前的代码。

#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

最佳答案

虽然我宁愿完全取消 webkitview 手势控制,但我不知道如何添加“多手势”支持似乎可以让它工作。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {

return YES;
}

关于ios - 在 WkWebView 中拦截滑动边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42893421/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com