我有一个集合视图单元格,我想向其中添加一个视图。 Apple声明应将视图添加到contentView
中。这是文档:
在配置单元格时,您可以将表示单元格内容的所有自定义视图添加到此视图。单元格对象将内容放置在此视图中任何背景视图的前面。
但是,似乎我也可以在contentView
内添加视图,并且没有警告或崩溃。这是我的代码。请注意评论QUESTION
-我想知道是否可以这样做:
class MyCollectionViewCell: UICollectionViewCell {
@IBOutlet private var imageView: UIImageView!
private let titleLabel = UILabel(frame: .zero)
override func awakeFromNib() {
super.awakeFromNib()
// QUESTION: Is this ok? Notice I am not adding the `titleLabel` to `self.contentView`
self.addSubview(titleLabel)
let horizontalCenterConstraint = NSLayoutConstraint(item: titleLabel, attribute: .centerX, relatedBy: .equal, toItem: self, attribute: .centerX, multiplier: 1.0, constant: 0)
let verticalCenterConstraint = NSLayoutConstraint(item: titleLabel, attribute: .centerY, relatedBy: .equal, toItem: self, attribute: .centerY, multiplier: 1.0, constant: 0)
self.addConstraint(horizontalCenterConstraint)
self.addConstraint(verticalCenterConstraint)
}
}
在上面的代码中,我没有使用self.contentView.addSubview
添加视图,而是简单地做了self.addSubview
。可以吗?
答案 0 :(得分:0)
大多数事情是可能,问题是为什么要这样做?
直接违反API作者的建议,您可能要冒大量潜在问题的风险。例如
如果您尝试做的事情是不可能的,并且您对风险没事,那就去做。否则,请遵循作者的明确说明。
答案 1 :(得分:0)
是的,我尝试直接添加cell
而不是contentView
。现在,发生了一件奇怪的事情,收藏夹视图无法滚动。我花了一个小时才弄清楚应该将自己添加到contentView