动态添加UIView到UICollectionView中的单元格仅适用于第一个单元格

时间:2016-03-27 18:06:28

标签: ios swift uiview uicollectionview uikit

在下面的代码中,目标是动态地向每个UICollectionViewCell添加UIView。但是,UIView只会被添加到第一个单元格中。

打印UICollectionViewCell框架显示调用doInit时帧是正确的,那么代码如何仅适用于第一个单元?

UICollectionView代码:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    // Get cell
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier(PantryStyleCellIdentifer, forIndexPath: indexPath) as! PantryStyleCell

    // Get style & init cell
    let style = pantry[indexPath.row]
    cell.doInit(style)

    // Return cell
    return cell
}

UICollectionViewCell代码:

class PantryStyleCell: UICollectionViewCell {
    var _style : BlockStyle?

    func doInit(style: BlockStyle) {
        // Store vars
        _style = style

        let testView = UIView(frame: frame)
        testView.backgroundColor = gGreenColor
        addSubview(testView)
    }

1 个答案:

答案 0 :(得分:1)

您要将视图的frame设置为self.frame,您应该将其设置为界限。

let testView = UIView(frame: bounds)