是uiscrollview适合我的需求?

时间:2013-12-31 18:47:11

标签: ios uiscrollview

我让我的应用程序运行到可以用图像和文本内容填充水平uiscrollview的点。但是我不确定uiscrollview的概念是否真的符合我的要求,因为不同视图的contentSize在高度上是不一样的。这是一个例子:

enter image description here

假设我想要在4个不同视图之间进行水平滚动(蓝色),每个视图都包含图像子视图(相同大小)和文本子视图。 然而,文本子视图将始终占用不同的空间量,因此高度。如何根据特定视图的实际高度确保仍具有垂直滚动(红色)的能力,如何定义整个contentSize的高度? 如果在uiscrollview中无法做到这一点,你还会怎么做呢?

2 个答案:

答案 0 :(得分:5)

您需要在其自己的滚动视图中创建每个垂直视图,并将每个滚动视图添加为水平滚动视图的子视图。只要确保垂直scrollview的contentWidth等于它的帧宽度,水平scrollview的内容高度等于它的帧高,否则你将拦截平移手势,你的UI会很烦人(过去我自己的代码中有这个问题) )。

所以你的视图层次结构(从应用程序窗口出来)就像:

Window-> Viewcontroller.view->水平Scrollview->多个垂直scrollviews->图片/文字/其他

答案 1 :(得分:1)

有很多方法可以实现这一点,@ Putz1103的解决方案是一个很好的方法。

  • 您还可以使用UIPageViewController,其中每个垂直视图都是UIViewController子类的实例。

  • 第三种选择是使用UICollectionView作为水平滚动视图,其中每个垂直滚动视图都是UICollectionViewCell的子类。由于iOS将处理可重复使用单元格的出列,因此该选项可以完全取消内存管理。

根据您拥有的垂直视图数量,您可以同时在视图层次结构中找到数百个视图。考虑到这一点,UICollectionView可能是正确的答案。