UICollectionViewCell中的Outlet为零

时间:2016-12-23 02:59:33

标签: ios swift uicollectionview swift3 uicollectionviewcell

我的UICollectionViewCell定义如下:

import UIKit

class GalleryCellCollectionViewCell: UICollectionViewCell {

    @IBOutlet weak var image: UIImageView!

}

当我添加插座时,Xcode会自动将其放入。在我UICollectionViewController

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

功能,然后我尝试设置图像。我的代码是

 override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! GalleryCellCollectionViewCell
        let imagePackage = imagePackages?[indexPath.item]
        let uiImage = imagePackage?.getUIImage()
        cell.image.image = uiImage
        return cell
    }

在我的调试器变量查看器中,我可以看到uiImage不是nil。但是,cell.imagenil。为什么会这样?我没有在storyboard中正确链接吗?

2 个答案:

答案 0 :(得分:-1)

这条线似乎很奇怪:

cell.image.image = uiImage

为什么您的单元格有多个图像实例?

修改

这段代码似乎很好。我们来看getUIImage function。我相信这个问题就在功能本身附近。

答案 1 :(得分:-1)

您可以使用其他方法使用标记访问图像。 从单元格的界面构建器(IB)转到属性选项卡(第三个选项卡)并为图像设置标记(如5)

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! GalleryCellCollectionViewCell
    let imagePackage = imagePackages?[indexPath.item]
    let uiImage = imagePackage?.getUIImage()
    var cellImg:UIImageView = cell!.viewWithTag(5) as! UIImageView;

    cellImg.image = uiImage
    return cell
}