WKWebView在contentInset之外无法点击

时间:2015-01-03 13:14:53

标签: ios8 wkwebview

我有一个带有UIWebView的应用程序,我需要将其更改为WKWebView。 一切都很完美,除非webView需要的contentInset不是0。 问题是,WKWebView没有接收到其scrollView的contentInset范围之外的触摸。

我已经制作了一个简单的示例应用来测试它:

- (void)viewDidLoad {
   [super viewDidLoad];

   WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
   self.wkWebView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:config];
   [self.view addSubview:self.wkWebView];

   self.wkWebView.scrollView.contentInset = UIEdgeInsetsMake(200, 0, 0, 0);
   NSURL *url = [NSURL URLWithString:@"http:/www.google.com"];
   NSURLRequest *request = [NSURLRequest requestWithURL:url];
   [self.wkWebView loadRequest:request];
}

当我滚动webView上方的顶部插图时,我无法点击该区域中的webView。

我试图寻找类似的问题,但没有运气,其他人是否遇到过这个问题?

谢谢

2 个答案:

答案 0 :(得分:5)

我遇到同样的问题,在iOS 8之前,我使用UIWebView,一切正常,但是当内容区域显示在contentInset区域时,WKWebview无法响应点击事件。 我终于通过在HTML字符串中添加一个空div来解决这个问题,在主体的开头。

<div style='width:100%;height:500px'></div>

然后WKWebView可以获得与set contentInset相同的效果,并正确响应用户点击!

答案 1 :(得分:3)

在Xcode 10和iOS 12的第一个测试版中,问题似乎已经终于解决了。