只能使用自定义UICollectionViewCell类更改UICollectionView中的第一个单元格图像

时间:2016-04-04 13:31:23

标签: ios swift uicollectionview uicollectionviewcell

所以我试图用我存储在数组中的图像填充collectionView。这是我的代码:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! ImageCollectionViewCell

    if (indexPath.row % 2 == 0) {
        cell.backgroundColor = UIColor.orangeColor()
    }
    else {
        cell.backgroundColor = UIColor.blackColor()
    }

    let img = poiImages.objectAtIndex(indexPath.row) as? UIImage
    cell.assignImage(img!)

    return cell
}

背景颜色改变正常,我做了这个作为初始测试,以验证该方法是否正常工作。但是,我只能为第一个单元格分配图像。此后所有细胞都留空,但仍然分配黑色/橙色。

这是我对UICollectionViewCell的自定义类代码:

import UIKit

class ImageCollectionViewCell: UICollectionViewCell {
    var imageView: UIImageView!

    override init(frame: CGRect) {
        imageView = UIImageView()
        imageView!.frame = frame
        imageView!.clipsToBounds = true
        imageView!.contentMode = UIViewContentMode.ScaleAspectFill // maybe change to fit
        super.init(frame: frame)

        contentView.addSubview(imageView!)
    }

    func assignImage(img: UIImage) {
        imageView!.image = img
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

在我的视图的初始化中,我记得嵌入了集合视图:

poiImageView.registerClass(ImageCollectionViewCell.self, forCellWithReuseIdentifier: "Cell")

我觉得我只是在制作我的自定义类的一个实例。

有什么想法吗?

万分感谢

修改

仍然无法让它继续工作,仍在寻找答案。我无法想出发生这种情况的任何理由。有没有人经历过同样的事情?

2 个答案:

答案 0 :(得分:0)

不确定是否有人仍然感兴趣,但是可以肯定,您要做的只是更改

imageView!.frame = frame

imageView!.frame = bounds

,你应该是金。对我有用

答案 1 :(得分:-1)

indexPath.row适用于UITableView

indexPath.item适用于UICollectionView