我想使用此内容向此 WKWebView 添加 subview ( https://www.windytv.com/?-34.816,138.608,5 )。这样 subview 就可以与 WebView 一起平移(想象一下有地标 View 正在平移),但我可以做到。
我尝试了很多方法如下:
- 我将landmarkView添加到webView的不同 subview 中,失败。
1.1 例如:
[self.webView addSubView:landmarkView];
1.2 或:
[self.webView.scroolView addSubView:landmarkView];
1.3 或:
[self.webView.scroolView.subViews.firstObject addSubView:landmarkView]; // In viewDidAppear
这里有趣的是 WKWebsite 的 View 层次结构将在 viewDidAppear 中发生变化。它获得更多 subview ,例如“WKContentView”。
- 接着1.,我尝试添加一个gestureView来传递移动landmarkView的手势,失败了。手势 Action 没有进行。
1.1。比如我在webView的 super View 上添加。
[self.view addSubView: baseView];
[self.baseView addSubView: webView];
self.panGestureRecognizer.cancelsTouchesInView = NO;
[webView addGestureRecognizer: self.panGestureRecognizer];
或者,我添加在webView的子View上。
[self.view addSubView: webView]; [self.webView addSubView:gestureView]; gestureView.backgroundColor = [UIColor 清除颜色]; self.panGestureRecognizer.cancelsTouchesInView = NO; [gestureView addGestureRecognizer: self.panGestureRecognizer];
有人熟悉WKWebView吗?
除了 UIGesture 之外,还有其他方法可以将触摸分配给多个 View 吗? 如果我可以重写 subview 之一中的 TouchBegan 方法,那么应该会容易得多。我认为 hitTest 仍然只能在 View 上工作。
一般
- (void)viewDidLoad
{
UIView *landmarkView = [[UIView alloc] initWithFrame:CGRectMake(200, 200, 200, 200)];
landmarkView.backgroundColor = [UIColor redColor];
NSString *path = @"https://www.windytv.com/?-37.331,145.102,7";
NSURL *url = [NSURL URLWithString:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];
[self.view addSubView: self.webView];
[self.webView.scrool addSubView:landmarkView]; // This is one of the failed attempts.
}
最佳答案
可以通过这个delegate方法添加一个panGesture来解决。
技巧介绍如下:
UIPanGestureRecognizer on MKMapView?
关于ios - 如何在可以沿此 webView 平移的 WKWebView 上添加 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41842768/