带有分页的全屏 UICollectionView 内的 UIWebView

Posted

技术标签:

【中文标题】带有分页的全屏 UICollectionView 内的 UIWebView【英文标题】:UIWebView inside full screen UICollectionView with paging 【发布时间】:2015-05-06 07:17:19 【问题描述】:

我想要一个带有分页的全屏 UICollectionView,每个单元格中都有一个 UIWebView。 WebView 应该上下滚动,CollectionView 应该左右移动页面。 另外,我希望单元格上的页面会预加载,这样当用户移动到某个页面时,html 页面就已经存在了。

处理这个问题的正确方法是什么?

【问题讨论】:

我不确定这是否会按预期工作,因为 UIWebView 可以包含垂直和水平滚动的内容,而水平滚动可能会导致集合视图出现问题。如果可行,我将尝试快速设置并发布解决方案。 :) 我是创建 HTML 的人 - 所以 - 没有水平滚动 和UITableView一样,UICollectionView是可复用的,所以我觉得用UICollectionView做不到。在分页的 UIScrollView 中手动放置 UIWebViews 怎么样? 【参考方案1】:

很难把它全部放在这里,所以看看this project是否能让你更接近解决你的问题。

请注意,没有预加载,因为如果您编写自己的 html 并且不会有任何网络调用,则不需要预加载页面 - 更改将立即对您的用户可见。

【讨论】:

【参考方案2】:

你总是需要在 UICollectionViewCells 中重新加载 UIWebView,因为它们是可重用的,但是如果你想要你可以做一个 hack,一个比你的主视图的框架大 3 倍的 UICollectionView 它必须从第二个开始页并在最后一页之前完成。 它将始终预加载 3 个 webview(但如果需要,您可以将 hack 做得更大),或者您可以制作一个激活分页的 UIScrollView,它总是会预加载所有 webview。

【讨论】:

以上是关于带有分页的全屏 UICollectionView 内的 UIWebView的主要内容,如果未能解决你的问题,请参考以下文章

带有分页的 UICollectionView - 设置页面宽度

带有分页的水平滚动视图中的全宽标签

带有全屏 UICollectionView 的 iOS 7 InteractivePopGesture

在启用分页的情况下使两个 UICollectionView 同步滚动

iOS 中带有分页的 UICollectionView 的页数

滚动到 UICollectionView 中启用分页的页面