【问题标题】:Adding subview to UICollectionView - disables scrolling将子视图添加到 UICollectionView - 禁用滚动
【发布时间】:2015-07-20 03:27:01
【问题描述】:

我想向 UICollectionView 添加一个子视图,以便制作一个随 collectionview 滚动的左侧面板。

使用

[self.collectionView addSubview:myView]

所有触摸都被禁用,我无法再滚动视图。我读过像这样向 collectionView 添加子视图是不好的做法。这是真的吗?为什么在

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

我正在尝试这样做:imgur link 通过抓取每个部分中第一个单元格的框架位置,并向 myView 添加一个具有相同 y 值的点。

感谢您的帮助!

【问题讨论】:

  • 你在使用 UICollectionViewController 吗?
  • @muku no,自定义视图控制器。
  • [self.view insertSubview:myView aboveSubview:self.collectionView ],你试过了吗
  • 虽然这确实恢复了滚动能力,但视图不会随着 collectionview 滚动

标签: ios objective-c uicollectionview


【解决方案1】:

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

正确的做法是为点实现一种新类型的UICollectionViewCell,并在prepareForLayoutlayoutAttributesForElementsInRect: 方法中计算它们的位置。基本上,每一行都会有一个或两个单元格。哪些会有两行,由你在我提到的方法中确定。

事实上,Apple 的文档有一个完美的示例,它比您尝试实现的目标还要复杂。你应该从this link查看它。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 2011-11-14
      相关资源
      最近更新 更多