Ios 将子视图添加到UICollectionViewCell';通过xib或故事板查看内容

Ios 将子视图添加到UICollectionViewCell';通过xib或故事板查看内容,ios,uicollectionviewcell,Ios,Uicollectionviewcell,我知道有一个帖子:问这个,但答案不正确。将UILabel直接拖动到单元格的xib中,标签将添加到单元格本身,而不是其contentView: (lldb) po self.subviews <__NSArrayM 0x7fa9b1c58a20>( <UIView: 0x7fa9b1c77540; frame = (0 0; 64 64); gestureRecognizers = <NSArray: 0x7fa9b1c66260>; layer = <CALa

我知道有一个帖子:问这个,但答案不正确。将UILabel直接拖动到单元格的xib中,标签将添加到单元格本身,而不是其contentView:

(lldb) po self.subviews
<__NSArrayM 0x7fa9b1c58a20>(
<UIView: 0x7fa9b1c77540; frame = (0 0; 64 64); gestureRecognizers = <NSArray: 0x7fa9b1c66260>; layer = <CALayer: 0x7fa9b1c352f0>>,
<UILabel: 0x7fa9b1c7a880; frame = (0 15; 64 18); text = 'market share'; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x7fa9b1c6f820>>,
<UILabel: 0x7fa9b1c77c30; frame = (0 38; 64 22); text = '17.06'; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x7fa9b1c36fe0>>
)


(lldb) po self.contentView.subviews
<__NSArray0 0x7fa9b1d02740>(

)
(lldb)po self.subview
(
,
,
)
(lldb)po self.contentView.subview
(
)
在XCode 7上仍然如此,示例:

所以我又问了一遍,想得到一个好的答案

该行为不同于UITableViewCell,后者将直接在xib中显示contentView。不知道苹果为什么这么做,在UICollectionViewCell文档中说:


要配置单元格的外观,请在contentView属性中将显示数据项内容所需的视图作为子视图添加到视图中。不要直接将子视图添加到cell本身。

联系苹果的技术支持后,他们告诉我,如果是通过xib,它将添加到cell的contentView中,但如果我对其进行编程,则不会添加,除非我手动将其添加为cell.contentView的子视图

需要提及的一点是,如果我们通过xib添加子视图,但它不属于contentView,我们需要删除xib上的视图,并将新的UICollectionViewCell拖到xib上。contentView不会显示在xib上,这与UITableViewCell不同