我的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.image
是nil
。为什么会这样?我没有在storyboard
中正确链接吗?
答案 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
}