【问题标题】:UISplitViewController+UIPageViewController+WKWebView = can't turn pages sometimesUISplitViewController+UIPageViewController+WKWebView = 有时不能翻页
【发布时间】:2023-04-10 22:06:01
【问题描述】:

我有一个UISplitViewController,其详细信息是UIPageViewController。每个页面视图控制器只显示一个WKWebView

问题是在 iPhone 6(s) Plus 的横向模式下,我无法使用页面视图控制器在页面之间滚动 if 显示的 html 包含非常常见的 @ 987654324@。我仍然可以滚动、缩放和平移WKWebView,但UIPageViewController 根本不允许我翻页。

该问题不会出现在其他水平常规环境(iPad 处于任一方向)或任何紧凑型环境(iPhone 6 Plus 处于纵向模式或其他 iPhone)中。 UIPageViewController 使用“滚动”过渡样式还是页面卷曲都没有关系。

是我做错了什么,还是 Apple 的错误?如果是后者,有什么解决方法吗?

【问题讨论】:

    标签: ios uisplitviewcontroller uipageviewcontroller wkwebview


    【解决方案1】:

    好的,我遇到了同样的问题。我有一个自定义的 SplitViewController,但行为相同(无法在 iPhone 6 Plus 上横向滑动到下一页)。问题是 splitview 必须使 webview 只是一个像素左右太小,以至于 webview 的手势识别器捕获了用于 UIPageView 的触摸事件。为什么?因为 webview 的内容必须向右“滚动”一个像素左右。稍微调整一下我的分流比就解决了。

    尝试稍微调整preferredPrimaryColumnWidthFraction,我相信这会解决您的问题。

    【讨论】:

    • 我尝试调整preferredPrimaryColumnWidthFraction,但没有成功,primaryColumnWidth 是只读的。你使用了什么值,你在哪里设置它?
    • @phu 我有一个自定义拆分视图控制器(不是 UISplitViewController 的子类)。您尝试了哪些 WidthFraction 值?
    • 几个不同的值,大多数是明显的值,如 0.3、0.4、0.5。如果您没有使用 UISplitViewController 子类,是什么让您如此确定设置 preferredPrimaryColumnWidthFraction 会解决问题?
    • @phu 很好的问题。好吧,在我的情况下,它与包含 webview 的视图控制器的大小有关(如我的回答中所述)。所以调整宽度约束对我有用。在 UISplitViewController 上,您似乎可以通过更改 PreferredPrimaryColumnWidthFraction 来实现相同的效果。你能从右向左滑动吗?
    【解决方案2】:

    UISplitViewController 向 WKWebView 控件报告宽度不正确,可能与拆分器分隔线有关。这会导致 WKWebView 水平滚动,与 UIPageViewController 冲突。使用此代码解决此问题:

    webView.scrollView.contentInset = UIEdgeInsetsMake(0, -1, 0, 0) 
    

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 2012-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-01
      相关资源
      最近更新 更多