我正在创建一个应用程序,但不知道最好的方法。
我想创建一个带有标签和UIimageview
的视图。我希望用户能够像页面应用程序一样无限地左右移动滑动。每次用户滑动时,它都会滑动到相同的视图控制器,除了使用不同的标签和从数组调用的UIimage
。
问题是我不确定最好的方法吗?
Possible Method 1
。有没有办法使用1个视图控制器和编写代码,以允许用户只需使用更新的标签和照片将左侧或右侧的单个视图滑动到完全相同的视图控制器上?
Possible Method 2
。我可以制作两个(或可能是三个)相同的视图控制器,用户可以在它们之间无限滑动,例如用户在视图1上启动并向右滑动以查看2,然后向右滑动以再次查看等等,但每次用户滑动另一个视图控制器将加载数组中的下一个数据(或前一个数据,具体取决于滑动的方向)
任何人都可以请给我关于解决这种情况的最佳方法的建议,以及我应该使用哪些工具/方法/类/等来实现这一点,例如我应该使用“页面视图控制器”还是{{1查看等。
如果有人可以帮我指导该怎么做,我可以独立去研究我需要做的事情!感谢任何人的帮助,我正在努力应对这种情况!
注意:数组可能是10到500之间的任何地方,但我可能会从Web调用1000个不同的对象,所以我不确定能够加载的最佳方法有效地避免占用内存和空间。
答案 0 :(得分:1)
首先,您似乎需要向用户显示或显示大量数据。在这种情况下,您必须使用/创建重用机制以防止内存警告。
有几种方法可以做到:
使用UIScrollView
并添加使用容器模式,将UIViewController
的视图作为子视图添加到UIScrollView
。这种方法的主要缺点是你必须创建自己的重用机制。
使用UICollectionView
并添加也使用容器模式将UIViewController
的视图添加为集合单元格中的子视图。当您显示UIViews
时,这种方法非常好,它提供了重用机制,但与UIViewController
一起使用它可能会很棘手。
最后的选择,从我的观点来看,最好的选择是使用UIPageViewController,它提供了重用机制,它处理UIViewController
子类。还为过渡提供了很酷的动画。
注意:请检查所需的最低iOS版本,以便在iPhone上使用它。对于iPad,iOS最低为iOS 5.
关于无限滚动,您可以通过使用点2,3的数据源来实现。 (两种实现都需要数据源)
答案 1 :(得分:0)
您好,您可以尝试使用“可能的方法1”方法
在视图控制器的“ViewDidLoad”功能中添加以下内容。
sum += x[i] - '0';
然后添加此功能并加载相关的标签/图像值。
var swipeRight = UISwipeGestureRecognizer(target: self, action: "respondToSwipeGesture:")
swipeRight.direction = UISwipeGestureRecognizerDirection.Right
self.view.addGestureRecognizer(swipeRight)
var swipeLeft = UISwipeGestureRecognizer(target: self, action: "respondToSwipeGesture:")
swipeLeft.direction = UISwipeGestureRecognizerDirection.Left
self.view.addGestureRecognizer(swipeLeft)