43

在 Android 上,可以使用 ViewPager 和 Fragments 在具有相同布局的多个数据页面之间进行浏览。用户向左或向右滑动,页面就会改变。所有页面只有一个视图控制器和一个布局资源,但用户浏览时数据内容会发生变化。左右滑动还有动画效果,可以看到下一页的内容已经加载完毕。

在 iOS 上相当于什么?

4

5 回答 5

47

使用属性设置为 YESUIScrollView的a。pagingEnabled通常 aUIPageControl与它一起使用。

如果你用谷歌搜索“UIScrollView 分页”,你可以找到很多教程和示例。Apple 提供了一个PageControl示例程序。

iOS 不提供任何类型的适配器类,但这里有一个教程解释了如何实现“虚拟页面”,这样您就不必一次实例化所有页面: http: //cocoawithlove.com/ 2009/01/multiple-virtual-pages-in-uiscrollview.html

于 2012-04-03T20:19:02.800 回答
27

你应该看看UIPageViewController。它从 iOS 5 开始可用。

于 2012-03-16T09:51:59.150 回答
7

我为 iOS 创建了一个自定义控件,其作用类似于 android 的 viewPager。你可以在这里查看

于 2014-06-27T12:14:43.307 回答
0

访问https://github.com/vowed21/HWViewPager

它可能会帮助你。

继承 UICollectionView。

可重复使用的 Cell,(可能是 Android 的 Adapter)

并启用左侧、右侧的预览部分。

于 2015-01-09T12:55:03.620 回答
0

您可以使用以下想法自己实现它。

假设我们希望无限循环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 示例中的“同步”或“边缘预览”来检查此功能。

于 2016-07-16T06:49:05.057 回答