Ios 如何使用UIgestureRecognitor滚动Web视图
我的应用程序有一个由两个视图组成的屏幕 一个UIWebView顶部的一个透明视图 当使用一根手指进行交互时,所有事件都应该由透明视图捕获 当与两根手指交互时,所有事件都应绕过UIWebView。因此,用户应该能够用两个手指滚动webview 我的实现将Ios 如何使用UIgestureRecognitor滚动Web视图,ios,uigesturerecognizer,Ios,Uigesturerecognizer,我的应用程序有一个由两个视图组成的屏幕 一个UIWebView顶部的一个透明视图 当使用一根手指进行交互时,所有事件都应该由透明视图捕获 当与两根手指交互时,所有事件都应绕过UIWebView。因此,用户应该能够用两个手指滚动webview 我的实现将透明视图.userInteractionEnabled设置为否,而状态变为UIgestureRecognitizerStateStart,并在状态变为UIgestureRecognitizerStateEnded时将其设置回是 但它失败了 所有源代
透明视图.userInteractionEnabled
设置为否
,而状态变为UIgestureRecognitizerStateStart
,并在状态变为UIgestureRecognitizerStateEnded
时将其设置回是
但它失败了
所有源代码都将上载到此git存储库
部分代码片段
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"https://developer.apple.com/devcenter/ios/index.action"];
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
self.gr = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePaning:)];
self.gr.maximumNumberOfTouches = 2;
self.gr.minimumNumberOfTouches = 2;
self.gr.delegate = self;
[self.view addGestureRecognizer:self.gr];
}
- (void)handlePaning:(UIPanGestureRecognizer *)gr
{
if (gr.state == UIGestureRecognizerStateBegan){
NSLog(@"Panning Began");
self.transparentView.alpha = 0.8f;
self.transparentView.userInteractionEnabled = NO;
}else if (gr.state == UIGestureRecognizerStateEnded) {
NSLog(@"Panning Ended");
self.transparentView.alpha = 0.3f;
self.transparentView.userInteractionEnabled = YES;
}
}
@艾比,谢谢。我实现了这一点,发现webview现在确实在滚动,但是你滚动到的区域是纯白色的,内容不会被呈现,你知道吗?页面加载??NSString*string=@“你的web URL”需要一些时间吗;NSURL*url=[NSURL URLWithString:string];[self.webview加载请求:[nsurlRequestRequestWithURL:url]];检查您是否已调用webview代理