【问题标题】:Why does my UICollectionView scroll up when clicking on a cell?为什么单击单元格时我的 UICollectionView 会向上滚动?
【发布时间】:2023-03-22 15:53:01
【问题描述】:

单击UICollectionViewCell 时,我的UICollectionView 总是向上滚动一点。
我注意到如果我将集合视图插图设置为 0(根本没有插图)并将 contentInsetAdjustmentBehavior 设置为 .never,则不会发生此行为。

但是,我仍然希望在我的 UICollectionView 上插入内容(底部和顶部各 8 像素),而无需自动滚动。我不确定为什么会发生这种行为以及它与 content inset 属性到底有什么关系。

有没有一种方法可以让自定义插图在点击UICollectionViewCell 时不会导致滚动?

这是我在viewDidLoad()中的配置:

self.collectionView?.contentInset = UIEdgeInsets(top: 8, left: 0, bottom: 8, right: 0)
// self.collectionView?.contentInsetAdjustmentBehavior = .never
// When setting the contentInset to zero and the contentInsetAdjustmentBehavior to never, it does not scroll

VC 看起来像这样:

每个单元格代表一条消息。底部的视图是inputAccessoryView

当我删除 inputAccessoryView 时,该行为不会发生。 这也可能与本次讨论有关:https://forums.developer.apple.com/thread/18424

【问题讨论】:

  • didSelectItemAtIndexPath 函数中有什么代码?
  • 没什么@杰克。我只有一个自定义的inputAccessoryView,它位于屏幕底部。
  • 你的约束设置了吗?
  • 访问inputAccessoryView 的高度并将CollectionView 的底部约束设置为由inputAccessoryView 的高度偏移的视图底部,这应该可以解决您的问题。
  • 感谢@T.Meyer 乐于提供帮助。

标签: ios swift scroll uicollectionview uiedgeinsets


【解决方案1】:

在我的情况下,当您选择 启用分页 时,它会在集合视图中发生。只需取消选择启用分页就可以了。

【讨论】:

  • 这个解决方案解决了我的问题。我自己处理后忘记禁用分页。
【解决方案2】:

答案 - 阅读 cmets

我怀疑是布局问题。为了解决这个问题,需要静态设置布局,这样它在交互时就不会调整。这通常可以通过约束来完成,在这种情况下,将CollectionView 的高度设置为由inputAccessoryView 偏移就是答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多