【问题标题】:UICollectionView Custom Layout animation glitch with self sizing cell size on performBatchUpdatesUICollectionView 自定义布局动画故障,在 performBatchUpdates 上具有自我调整单元格大小
【发布时间】:2018-01-26 19:00:29
【问题描述】:

根据我对具有自定义布局的 uicollectionview 中的自定尺寸单元格的理解,参考了 Richard Turton 的 this one 等精彩文章, 处理自定尺寸单元格的方法是通过

  1. prepare 中为您的单元格/视图设置估计大小,因为它们将有机会使用真正的自动布局计算来更新自己
  2. 在单元格本身计算首选属性(框架)的单元格中提供preferredLayoutAttributesFitting
  3. 布局反复使自己失效,直到所有这些都被invalidationContext(forPreferredLayoutAttributes:withOriginalAttributes)覆盖

在初始加载时,这对我来说似乎工作正常。但是,在调用collectionView.performBatchUpdates 驱动的更改中,我要么看到prepare 中设置的估计大小的单元格闪烁,要么有时会结束(如果我试图用初始设置动画它们大小)。

我按照流程进行操作,我看到属性通过失效流程正确提供。 prepare 被多次调用(包括在通过首选属性失效正确设置属性之后)。这似乎会影响正确的大小,至少是暂时的,从而导致动画故障(或错误的最终布局)。

我能找到的唯一可行的解​​决方案是on the interwebs,其中调用了performBatchUpdates,跳过尝试使用首选属性方法,只需在prepare 方法内调用UICV 上的委托方法在该步骤获得正确的尺寸,但这似乎与提供的工具背道而驰。

也许是known issue

仅供参考,与几个集合视图工程师交谈,这似乎是一个错误。他们建议使用参考单元进行手动调整大小的解决方法。

【问题讨论】:

  • “他们建议使用参考单元进行手动调整大小的解决方法。”这是什么意思?

标签: uicollectionviewlayout


【解决方案1】:

collectionview 中的浮动标题也有类似的问题。它可能有助于检查:UICollectionView sticky header disappears for while after inserting section when collection is overscrolled (bounce effect)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 2014-09-02
    • 2021-09-28
    • 2021-06-19
    • 2017-05-07
    • 2014-11-11
    相关资源
    最近更新 更多