У меня была эта проблема в течение долгого времени, и я просто не могу найти ответ, который работает. Я все настраиваю программно.
Например, здесь я добавляю представление контейнера в ячейку представления коллекции.
addSubviewWithConstraints(subview: containerView,
topAnchor: self.topAnchor, topConstant: 100,
leadingAnchor: self.leadingAnchor, leadingConstant: 50,
trailingAnchor: self.trailingAnchor, trailingConstant: -50,
bottomAnchor: self.bottomAnchor, bottomConstant: -100)
containerView.addSubviewWithConstraints(subview: headerLabel,
centerXAnchor: self.centerXAnchor,
centerYAnchor: self.centerYAnchor,
width: containerView.frame.width,
height: 44)
Когда я ссылаюсь на frame.width другого подпредставления, как я делаю в ограничениях headerLabel, он возвращает 0 и поэтому метка заголовка не видна. Это работает, если я жестко закодировал значение для ширины.
Это обычно происходит, когда суперпредставление инициализируется как CGSize.zero, а затем размер изменяется позже, но также по какой-то причине и в случае с этой ячейкой представления коллекции, даже если размер суперпредставления не изменился.