Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 以编程方式启用/禁用pinch以缩放WKWebView和viewForZoomingInScrollView_Swift_Wkwebview - Fatal编程技术网

Swift 以编程方式启用/禁用pinch以缩放WKWebView和viewForZoomingInScrollView

Swift 以编程方式启用/禁用pinch以缩放WKWebView和viewForZoomingInScrollView,swift,wkwebview,Swift,Wkwebview,我有一个WKWebView,我想通过编程启用/禁用“收缩”缩放 当我想启用“收缩到缩放”时,我应该返回什么 wkWebView!。scrollView与 '从viewForZoomingInScrollView:返回的视图必须是子视图 滚动视图的一部分。它不能是滚动视图本身。” 我的解决方案是将self设置为webView。仅当禁用缩放时才将scrollView的委托,如果启用了缩放,则将其重置为nil var pinchToZoom: Bool { didSet { /

我有一个WKWebView,我想通过编程启用/禁用“收缩”缩放

当我想启用“收缩到缩放”时,我应该返回什么

wkWebView!。scrollView与

'从viewForZoomingInScrollView:返回的视图必须是子视图 滚动视图的一部分。它不能是滚动视图本身。”


我的解决方案是将
self
设置为
webView。仅当禁用缩放时才将scrollView
的委托,如果启用了缩放,则将其重置为
nil

var pinchToZoom: Bool {
    didSet {
        // only set self as delegate when disabling zoom
        webView.scrollView.delegate = pinchToZoom ? nil : self
    }
}

func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
    return nil
}

这样,只要设置了
pinchToZoom
,代理就会更新以启用/禁用缩放。不需要私有API。希望这有帮助

这使用私有API,可能导致苹果拒绝您的应用程序。
if (pinchToZoom)
{
    for (UIView *subScrollView in [scrollView subviews])
    {
        if ([subScrollView isKindOfClass:NSClassFromString(@"WKContentView")])
        {
            return subScrollView;
        }
    }

    return nil;
}
else
{
    return nil;
}
var pinchToZoom: Bool {
    didSet {
        // only set self as delegate when disabling zoom
        webView.scrollView.delegate = pinchToZoom ? nil : self
    }
}

func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
    return nil
}