У меня есть ячейка представления коллекции, и я хочу добавить к ней представление.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
.Это нормально?