我使用文件>新建>文件…的Xcode UI创建了子类> Cocoa类(也选中创建xib文件)…好了。
我将子视图直接添加到集合视图单元格的view子视图中:

我已经在UICollectionView注册了子类和nib,一切都很好。但是,当我以编程方式访问集合视图单元格的contentView属性以设置其背景颜色时,它不会改变。
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
{
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(CellIdentifiers.Category, forIndexPath: indexPath) as! CategoryCollectionViewCell
let category = categoryForIndexPath(indexPath)
cell.textLabel.text = titleForCategory(category)
cell.contentView.backgroundColor = UIColor.redColor()
return cell
}在lldb中,我的contentView有地址:0x13fdc3550,而文本标签的superview (我认为应该是contentView)有地址contentView,所以它们肯定是不同的。
如何使用自定义xib成功地子类UICollectionViewCell并通过contentView属性访问内容视图?
P.s,有趣的是,如果我将这个contentView属性隐藏为true,那就有效了。
发布于 2015-09-29 02:25:46
文本标签的superView是拖动到单元格中的UIView。它应该是单元格的contentView的子视图。因此,当您将contentView隐藏为true时,它的子视图也隐藏了起来。但是,当您将contentView的backgroundColor设置为某个内容时,您拖到单元格中的视图将覆盖它。您可以检查文本标签的superview的superview,以查看它是否与lldb中的contentView地址相匹配。
因此,您可以直接更改视图的backgroundColor,也可以更改单元格的布局,删除该视图。
https://stackoverflow.com/questions/32833075
复制相似问题