将子视图添加到UICollectionView - 禁用滚动

时间:2015-07-20 03:27:01

标签: ios objective-c uicollectionview

我想在UICollectionView中添加一个子视图,以便创建一个使用collectionview滚动的左侧面板。

使用

[self.collectionView addSubview:myView]

所有触摸都被禁用,我无法再滚动视图。我已经读过,将一个子视图添加到这样的集合视图是不好的做法..这是真的吗?为什么在

时禁止触摸到达collectionView事件
userInteractionEnabled = NO

我试图这样做:imgur link抓住每个部分中第一个单元格的框架位置,然后在myView中添加一个带有相同y值的点。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我可以知道滚动视图的目的吗?因为,如果您正在寻找仅显示标签或图像等的子视图,您可以使用自定义集合视图单元格,如果我没有错误...希望它有帮助:) :)

答案 1 :(得分:0)

使用addSubview:方法将子视图添加到UICollectionView是非常糟糕的做法。它可能会导致CollectionView的正常行为中出现许多不同的问题。它可以阻挡下面的视图,捕获触摸事件,阻止它们到达CollectionView内部的实际scrollView等。使用此方法添加的子视图也不会像CollectionView中的其他元素那样滚动。

执行所需操作的正确方法是为点实现新类型UICollectionViewCell,并使用prepareForLayoutlayoutAttributesForElementsInRect:方法计算其位置。基本上你每行都会有一个或两个单元格。哪些将有两行将由您在我提到的方法中确定。

事实上,Apple的文档有一个完美的例子,它比你想要的更复杂。你应该从this link查看。