ios - 如何在可以沿此 webView 平移的 WKWebView 上添加 subview ?

标签 ios objective-c view wkwebview

我想使用此内容向此 WKWebView 添加 subview ( https://www.windytv.com/?-34.816,138.608,5 )。这样 subview 就可以与 WebView 一起平移(想象一下有地标 View 正在平移),但我可以做到。

我尝试了很多方法如下:

  1. 我将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. 接着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];
  1. 或者,我添加在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/

相关文章:

ios - 用 Swift 代码编写 Unity IOS 插件

ios - 如何禁用快速触摸和双开 View ?

ios - UIImage 大小比我设置的要大

xcode - 显示 View 几秒钟(来自 NavController 的自定义推送)

android - 在不耗尽电池的情况下与服务器保持持续的互联网连接

objective-c - iOS libsystem_c.dylib strdup 内存泄漏 NSZombie 不工作

objective-c - 指针与整数的比较

ios - 隐藏或移动选定的 Cell 并在 UItableView 的 indexPath.row 中加载一个新的自定义 Cell

java - Eclipse 消除因未编译代码而导致的错误

android - 响应选择器的自定义可检查 View