在Android上,有一种巧妙的方法,可以使用ViewPager和Fragments在具有相同布局的几页数据之间浏览。用户向左或向右滑动,页面就会改变。所有页面只有一个视图控制器和一个布局资源,但是当用户浏览时,数据内容会改变。左右滑动还有一个动画效果,您可以在其中看到下一页的内容已加载。
在iOS上相当于什么?
使用UIScrollView
与pagingEnabled
属性设置为YES。通常将aUIPageControl
与它一起使用。
如果您使用Google进行“ 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。
可重复使用的单元格(可能是Android的适配器)
并启用左侧,右侧的预览部分。
您可以使用以下想法自行实现。
假设我们希望无限循环遍历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中的pageingEnabled选项可能有效,但是如果您要设置的内容项目的宽度比其父级(滚动)视图的宽度窄,它将无法正常工作。请通过参考cocoacontrols示例中的“同步”或“边缘预览”来检查此功能。
文章标签:ios , layout , swipe-gesture
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!