【问题标题】:Is it possible to change image of cell without making a custom cell class?是否可以在不制作自定义单元格类的情况下更改单元格的图像?
【发布时间】:2019-04-05 22:44:08
【问题描述】:

在 Xcode 中,如果说我有一个 UICollectionViewCell,其中有一个 UIImageView,我习惯于制作一个自定义单元类来访问该 UIImage。然而,这有必要吗?我确信我不必为了访问UIImage 而创建自定义单元类。

我需要做一些类似...的事情吗?

for var subview in cell.subviews
{
    if subview is UIImageView
    {
        subview = UIImageView()
        subview.image = //change image here
    }
}

谢谢!

【问题讨论】:

    标签: ios swift image uicollectionview cell


    【解决方案1】:

    永远不要挖掘视图的私有子视图结构。该实现可以在任何 iOS 更新中更改。您找到的图像视图用于其他目的。

    UICollectionViewCell 不提供您可以使用的图像属性。如果您希望显示图像,请创建一个自定义单元格类,其中包含您自己的 UIImageView 设置和所需的约束。使用该图像视图,而不是您通过挖掘私有子视图碰巧找到的。

    在您的自定义单元格类中提供一个属性,以便在 cellForItemAt 方法中访问该图像视图变得简单。

    【讨论】:

    • 谢谢。您必须制作整个类文件才能访问一个图像,这有点令人讨厌。
    【解决方案2】:

    如果您强烈反对子类化 UICollectionViewCell,那么这些对象有一个 contentView 属性,您可以向其中添加图像。然后,您可以致电cell.contentView.layer.contents = someImage.cgImage,然后您就不需要处理未记录的子视图了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-20
      • 2021-11-02
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多