在 Android 上,可以使用 ViewPager 和 Fragments 在具有相同布局的多个数据页面之间进行浏览。用户向左或向右滑动,页面就会改变。所有页面只有一个视图控制器和一个布局资源,但用户浏览时数据内容会发生变化。左右滑动还有动画效果,可以看到下一页的内容已经加载完毕。
在 iOS 上相当于什么?
在 Android 上,可以使用 ViewPager 和 Fragments 在具有相同布局的多个数据页面之间进行浏览。用户向左或向右滑动,页面就会改变。所有页面只有一个视图控制器和一个布局资源,但用户浏览时数据内容会发生变化。左右滑动还有动画效果,可以看到下一页的内容已经加载完毕。
在 iOS 上相当于什么?
使用属性设置为 YESUIScrollView
的a。pagingEnabled
通常 aUIPageControl
与它一起使用。
如果你用谷歌搜索“UIScrollView 分页”,你可以找到很多教程和示例。Apple 提供了一个PageControl示例程序。
iOS 不提供任何类型的适配器类,但这里有一个教程解释了如何实现“虚拟页面”,这样您就不必一次实例化所有页面: http: //cocoawithlove.com/ 2009/01/multiple-virtual-pages-in-uiscrollview.html
你应该看看UIPageViewController。它从 iOS 5 开始可用。
我为 iOS 创建了一个自定义控件,其作用类似于 android 的 viewPager。你可以在这里查看。
访问https://github.com/vowed21/HWViewPager
它可能会帮助你。
继承 UICollectionView。
可重复使用的 Cell,(可能是 Android 的 Adapter)
并启用左侧、右侧的预览部分。
您可以使用以下想法自己实现它。
假设我们希望无限循环3个项目(单元格)-C0,C1,C2,我们可以在中心单元格的左侧和右侧生成虚拟单元格,结果如下,
C0 C1 C2 [C0 C1 C2] C0 C1 C2
括号中的单元格是我们通过设备屏幕看到的单元格,如果我们向左滚动,
C0 [C1 C2 C0] C1 C2 C0 C1 C2
此时,强制 contentOffset 指向给定虚拟单元的右侧,
C0 [C1 C2 C0] C1 C2 C0 C1 C2 -> C0 C1 C2 C0 [C1 C2 C0] C1 C2
当您向右滚动时,它将以相同的机制工作。
在我下面的解决方案中,将项目视图宽度设置为等于其父视图将解决您的问题。
https://github.com/DragonCherry/HFSwipeView
如果您只是想简单地检查一下它是如何工作的,请单击下面的链接并“点击播放”。
https://www.cocoacontrols.com/controls/hfswipeview
仅在 UIScrollView 中使用 pagingEnabled 选项可能适用于全尺寸单元格项目,但如果您想设置比其父(滚动)视图更窄的内容项目宽度,它将无法正常工作。请参考 cocoacontrols 示例中的“同步”或“边缘预览”来检查此功能。