ScrollView中的CollectionView

Jor*_*ge 4 ios swift swift3

所以我的问题是,每次我试图滚动时,滚动视图都不起作用.只有集合视图的滚动才有效.

我有我ViewController和这个子视图:

. View
.. Scrollview
... Label
... Image 
... Label
... CollectionView (column of 2)
Run Code Online (Sandbox Code Playgroud)

我试图在集合视图中禁用滚动,但没有按预期工作.

Laf*_*fen 14

UICollectionView内部设置为a 并不是一种好的做法,UIScrollView因为这会导致一些不需要的行为,因为它UICollectionViewUIScrollView类的后代.

相反,具有的UIScrollViewLabel, Image, Label, CollectionView,你可以删除UIScrollView,并添加UICollectionReusableView为标题的UICollectionView.在此标题内,您可以Label, Image, Label将该视图始终保持在UICollectionView您为其创建标题的部分的顶部.

如果你遇到一些问题,你可以去看看,然后再回到我们身边:)

UICollectionView

集合视图基础知识

  • 只是为了别人。我在滚动视图中使用了 uicollectionview 并且它有效。到目前为止没有异常行为。 (3认同)

Art*_*lov 5

从问题中的信息来看,很难给出详细的答案。只是一个小提示。当您使用时,您应该仔细检查两件重要的事情UIScrollView

  1. 滚动视图子视图的自动布局约束。
  2. contentSize你的滚动视图。

也许这会有所帮助。

即使您选择禁用 uicollectionView 的可滚动功能,也有一些提示:

  1. 您需要在自动布局中固定 uicollectionView 的高度,否则会给您一个警告:scrollview 需要 y 位置或高度。
  2. 您需要一个对 collectionView 高度的约束出口,并在代码中将其值调整为 contentSize。比如viewDidLoad中。这意味着您不能仅使用 AutoLayout 来实现此目的。