Итак, у меня есть это представление коллекции со смешанными ячейками собственного размера и ячейками фиксированного размера.Это прекрасно работает для самих себя, но я не могу заставить фиксированные размеры оставаться фиксированными.Вот что я делаю:
// I have a viewContainer inside the cell's contentView
let viewContainer = UIView()
viewContainer.backgroundColor = .red
viewContainer.translatesAutoresizingMaskIntoConstraints = false
self.contentView.addSubview(viewContainer)
// This viewContainer has a fixed width/height and is achored to the top, left, right, bottom of the contentView
viewContainer.topAnchor.constraint(equalTo: self.contentView.topAnchor).isActive = true
viewContainer.leftAnchor.constraint(equalTo: self.contentView.leftAnchor).isActive = true
viewContainer.bottomAnchor.constraint(equalTo: self.contentView.bottomAnchor).isActive = true
viewContainer.rightAnchor.constraint(equalTo: self.contentView.rightAnchor).isActive = true
viewContainer.heightAnchor.constraint(equalToConstant: FIXED_HEIGHT).isActive = true
viewContainer.widthAnchor.constraint(equalToConstant: FIXED_WIDTH).isActive = true
// Then I got my ImageView (property of my cell), as a viewContainer subview
self.photoImageView.translatesAutoresizingMaskIntoConstraints = false
self.photoImageView.contentMode = .scaleAspectFill
viewContainer.addSubview(self.photoImageView)
// It has a fixed width/height and is achored to the top, left, right, bottom of the viewContainer
self.photoImageView.topAnchor.constraint(equalTo: viewContainer.topAnchor).isActive = true
self.photoImageView.leftAnchor.constraint(equalTo: viewContainer.leftAnchor).isActive = true
self.photoImageView.bottomAnchor.constraint(equalTo: viewContainer.bottomAnchor).isActive = true
self.photoImageView.rightAnchor.constraint(equalTo: viewContainer.rightAnchor).isActive = true
self.photoImageView.heightAnchor.constraint(equalToConstant: FIXED_HEIGHT).isActive = true
self.photoImageView.widthAnchor.constraint(equalToConstant: FIXED_WIDTH).isActive = true
Каким-то образом, когда у меня были изображения (из средства выбора изображений, с простой перезагрузкой данных в делегате), размер ячейки изменяется, размер изображения:
![unwanted self sized cell](https://i.stack.imgur.com/GfiM5.png)
Но после быстрой прокрутки вверх и вниз на collectionView все выглядит хорошо:
![right sized cell](https://i.stack.imgur.com/t3Fkt.png)
Я устал добавлять высокий приоритет к методу heightAnchor и withAnchor UILayoutPriority(999.0)
, но, похоже, это не помогает.Я не могу найти способ изменить размер этой ячейки и изображение ячейки так, как я хочу.Я чувствую, что это связано с изображением внутри изображения, но я не понимаю, как и почему это происходит.Может ли кто-нибудь помочь мне с этим?
Заранее спасибо за ваши ответы.
РЕДАКТИРОВАТЬ: Я также попытался создать подкласс UIImageView и переопределить intrinsicContentSize, чтобы он возвращал размер, который я хотелбыть, но все равно безуспешно: /