在下面的代码中,目标是动态地向每个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)
}
答案 0 :(得分:1)
您要将视图的frame
设置为self.frame
,您应该将其设置为界限。
let testView = UIView(frame: bounds)