我使用File>的Xcode UI创建了我的子类;新>文件...> Cocoa Touch Class(也检查创建xib文件)...完成。
我将子视图直接添加到集合视图单元格的UICollectionView
子视图中:
我已经使用contentView
注册了子类和nib,并且它们都运行良好。但是,当我以编程方式访问我的集合视图单元格的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
}
属性以设置其背景颜色时,它不会更改。
contentView
在lldb中,我的contentView
的地址为: 0x13fdc3550 ,文本标签的超级视图(我假设应该是UICollectionViewCell
)的地址为 0x000000013fdc36b0 < / strong> - 所以他们必须是不同的。
如何使用自定义xib成功将contentView
子类化,并通过contentView
属性访问内容视图?
P.s,有趣的是如果我将这个class OuterClass {
enum MyEnum {
case ThingOne
case ThingTwo
}
}
// Error: Invalid use of '()' to call a value of non-function type '[OuterClass.MyEnum.Type]'
var emptyEnumArray = [OuterClass.MyEnum]()
emptyEnumArray.append(.ThingOne)
属性的隐藏设置为true,那就有效。
答案 0 :(得分:0)
Text Label的superView是您拖入单元格的UIView
。它应该是单元格contentView的子视图。因此,当您将contentView的hidden设置为true时,所有它的子视图也都隐藏了。但是,当您将contentView的backgroundColor
设置为某个内容时,您拖入单元格的视图将覆盖它。您可以检查文本标签的superview的超级视图,看它是否与lldb中的contentView地址匹配。
因此,您可以直接更改该视图的backgroundColor或更改单元格的布局,删除该视图。