UISplitViewController+UIPageViewController+WKWebView = 有时不能翻页
Posted
技术标签:
【中文标题】UISplitViewController+UIPageViewController+WKWebView = 有时不能翻页【英文标题】:UISplitViewController+UIPageViewController+WKWebView = can't turn pages sometimes 【发布时间】:2015-12-07 03:14:35 【问题描述】:我有一个UISplitViewController
,其详细信息是UIPageViewController
。每个页面视图控制器只显示一个WKWebView
。
问题是在 iPhone 6(s) Plus 的横向模式下,我无法使用页面视图控制器在页面之间滚动 if 显示的 html 包含非常常见的 @ 987654324@。我仍然可以滚动、缩放和平移WKWebView
,但UIPageViewController
根本不允许我翻页。
该问题不会出现在其他水平常规环境(iPad 处于任一方向)或任何紧凑型环境(iPhone 6 Plus 处于纵向模式或其他 iPhone)中。 UIPageViewController
使用“滚动”过渡样式还是页面卷曲都没有关系。
是我做错了什么,还是 Apple 的错误?如果是后者,有什么解决方法吗?
【问题讨论】:
【参考方案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)
【讨论】:
以上是关于UISplitViewController+UIPageViewController+WKWebView = 有时不能翻页的主要内容,如果未能解决你的问题,请参考以下文章
uip UDP server广播模式(client能够随意port,而且主动向client发送数据)
ALIENTEK 战舰ENC28J60 LWIP和UIP补充例程(LWIP WEB有惊喜)
UISplitViewController - 双列样式不起作用