替换 UICollectionView 中的子视图,而不是更改子视图属性
Replace a subview in UICollectionView, instead of changing subview properties
我正在尝试实现 UICollectionViewCell 的子类。
我得到一组自定义视图,我们称它为 views
从一个对象传递到另一个对象,还有一个名为 views
的数组。它们的类型是 CustomView
.
UICollectionViewCell 子类有一个 属性 类型 CustomView
的 view
。
在 CellForItemAt...
中,我试图从 CustomViews
的数组中设置单元格的 view
属性,如下所示:
let customView = array[indexPath.row]
cell.view = customView
但是,当我这样做时,单元格显示不正确;它们是空的,只是屏幕上的灰色形状。
但是,当我明确设置单元格 CustomView
子视图的属性时,它显示了我想要的方式。
有没有办法在单元格上进行布局传递?或者您是否必须在 UICollectionViewCells 中显式设置属性,而不是只传入预配置的视图?
代码是专有的,所以我不得不隐瞒,但如果我能澄清,请告诉我
编辑:请参阅已接受答案中的评论以获得进一步解释
您应该添加约束,否则您将获得默认的自动调整大小掩码约束。调用 cell.setNeedsLayout() 以强制自动布局在您分配 voew 后在下一次绘制之前重新计算。
我正在尝试实现 UICollectionViewCell 的子类。
我得到一组自定义视图,我们称它为 views
从一个对象传递到另一个对象,还有一个名为 views
的数组。它们的类型是 CustomView
.
UICollectionViewCell 子类有一个 属性 类型 CustomView
的 view
。
在 CellForItemAt...
中,我试图从 CustomViews
的数组中设置单元格的 view
属性,如下所示:
let customView = array[indexPath.row]
cell.view = customView
但是,当我这样做时,单元格显示不正确;它们是空的,只是屏幕上的灰色形状。
但是,当我明确设置单元格 CustomView
子视图的属性时,它显示了我想要的方式。
有没有办法在单元格上进行布局传递?或者您是否必须在 UICollectionViewCells 中显式设置属性,而不是只传入预配置的视图?
代码是专有的,所以我不得不隐瞒,但如果我能澄清,请告诉我
编辑:请参阅已接受答案中的评论以获得进一步解释
您应该添加约束,否则您将获得默认的自动调整大小掩码约束。调用 cell.setNeedsLayout() 以强制自动布局在您分配 voew 后在下一次绘制之前重新计算。