我有UICollectionView
个自定义UICollectionViewCell
。 UICollectionView
水平滚动,每个单元格占据所有可见屏幕。
UICollectionViewCell
有一个UIView
子视图,而子视图又有一个UIScrollView
子视图。
UIScrollView
旨在垂直滚动,但它根本不滚动。我尝试设置滚动视图的contentSize
但没有成功。
我怀疑UIScrollView
没有获得任何触摸事件,而不是尺寸问题。
有什么建议吗?
编辑>>
我现在确定这是一个事件问题,而不是UIScrollView
特有的事情。
我现在已经覆盖pointInside:
中UIView
中的UICollectionViewCell
方法,并且每次点击它时都会看到它现在返回false。在这种情况下,您认为点击事件会传播到下一个子视图,但UIView
仍未获取事件。我尝试向UIGestureRecognizer
添加UIView
,但它从未注册过点击。
这里有什么东西拦截我不知道的事件吗?
答案 0 :(得分:1)
我一直试图用滚动视图解决类似问题,您对事件的编辑让我想起了这个问题(这又解决了我的问题)How can I use a UIButton in a UICollection supplementary view?
您可能需要使用UICollectionReusableView,而不是UICollectionViewCell。改变课程对我有用,因为我在标题中使用了一个按钮(最近是一个滚动视图)。
然而,我并没有尝试过自己的细胞。要从UICollectionViewCell捕获事件,以下可能有用吗? Getting button action : UICollectionView Cell
答案 1 :(得分:0)
尝试为userInteractionEnabled
停用UIView
并为UIScrollView
启用
答案 2 :(得分:0)
我不确定这是不是你的问题,但这是我的问题 - 而且我把它放在这里以防其他人因为同样的原因遇到这个问题。我想在UIScrollView
内加UICollectionReusableView
,但不小心我创建了自定义类;
class CustomCellHeader: UICollectionViewCell {
}
而不是;
class CustomCellHeader: UICollectionReusableView {
}
一旦我改变了这一点,我的标题单元格中的UIScrollView
变为现实!
答案 3 :(得分:0)
向UICollectionViewCell中添加“ UICollectionViewDelegateFlowLayout”,即:
class SomeCollectionCell: UICollectionViewCell, UICollectionViewDelegateFlowLayout {
}
现在在单元格中滚动应该可以了。