当在 cellForItemAt 中应用时,仅应用于 UICollectionView 中的回收视图的转换



不知道我在这里错过了什么。我正在翻转UICollectionView以实现聊天消息列表预期的底部优先样式。当我尝试旋转邮件单元格时,我的问题出现了。我使用转换

cell.transform = CGAffineTransform(a: 1, b: 0, c: 0, d: -1, tx: 0, ty: 0)

collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell

问题是第一批消息没有应用转换并颠倒呈现,但如果我向上滚动,新消息会随着转换呈现并且右侧朝上。当我向下滚动时,原始消息也会正确加载。似乎我的转换仅适用于回收视图,我需要做什么才能将其应用于新的和回收的视图?

您需要通过布局属性提供转换属性。集合视图通常在从单元格的数据源获取单元格后将所有属性应用于单元格。有关布局属性支持的所有可能属性,请参阅 https://developer.apple.com/documentation/uikit/uicollectionviewlayoutattributes。

不建议在其他位置通过代码修改这些属性之一。如果已构建自己的布局类,则应该很容易设置 transform 属性。如果您使用的是UICollectionViewFlowLayout,则很可能必须对其进行子类化。

最新更新