UICollectionViewCell中的UIScrollView不起作用

时间:2013-02-07 14:53:34

标签: ios objective-c uiscrollview uicollectionview

我有UICollectionView个自定义UICollectionViewCellUICollectionView水平滚动,每个单元格占据所有可见屏幕。

UICollectionViewCell有一个UIView子视图,而子视图又有一个UIScrollView子视图。

UIScrollView旨在垂直滚动,但它根本不滚动。我尝试设置滚动视图的contentSize但没有成功。

我怀疑UIScrollView没有获得任何触摸事件,而不是尺寸问题。

有什么建议吗?

编辑>>

我现在确定这是一个事件问题,而不是UIScrollView特有的事情。

我现在已经覆盖pointInside:UIView中的UICollectionViewCell方法,并且每次点击它时都会看到它现在返回false。在这种情况下,您认为点击事件会传播到下一个子视图,但UIView仍未获取事件。我尝试向UIGestureRecognizer添加UIView,但它从未注册过点击。

这里有什么东西拦截我不知道的事件吗?

4 个答案:

答案 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)

  1. 将可滚动内容嵌入到单元格内的ScrollView中。
  2. 向UICollectionViewCell中添加“ UICollectionViewDelegateFlowLayout”,即:

    class SomeCollectionCell: UICollectionViewCell, UICollectionViewDelegateFlowLayout {
    }

现在在单元格中滚动应该可以了。