如何解决UICollectionView 的 reloadItems 将使用自动调整大小来更改标题的位置
我正在通过 UICollectionView 创建一个具有自动布局的列表,我遵循了 this answer 并且它运行良好,直到我添加了一个可扩展的行为。
我做了一个非常简单的项目,你可以看到上面的截图,所有的单元格(红色单元格)都是可点击的,每个单元格包含一个垂直的堆栈视图,有两个标签,标题和描述,描述标签默认是隐藏的。
当一个单元格被选中时,描述的隐藏值会改变,然后我会调用reloadItems(at:)
来展开/折叠选中的单元格。
func collectionView(_ collectionView: UICollectionView,didSelectItemAt indexPath: IndexPath) {
if let cell = collectionView.cellForItem(at: indexPath) as? DynamicCollectionViewCell {
let dm = dataModels[indexPath.section][indexPath.item]
dm.isExpanded = !dm.isExpanded
cell.descLabel.isHidden = !dm.isExpanded
cell.indicatorLabel.text = dm.isExpanded ? "-" : "+"
collectionView.reloadItems(at: [indexPath])
}
}
突然移动了第二个标题的位置!我已尝试改用 reloadData
,但 contentSet
将重置为 0。为什么会发生这种情况,我该如何解决?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。