Я нашел следующий ответ, чтобы высота UIView соответствовала его содержимому https://stackoverflow.com/a/39527226/7767664
Я проверил его, он работает нормально (если размер высоты UIView в раскадровке больше или меньше его содержимого, то во время выполненияон автоматически изменяет размер, чтобы соответствовать содержимому).
Но если я использую UICollectionViewCell
вместо UIView
, то ничего не меняется, высота ячейки никогда не изменяется, она всегда имеет жестко заданную высоту, которая есть в свойствах раскадровки:
Что еще я могу сделать?
Также у меня есть 2 раздела в UIControllerView (2 столбца).Две ячейки в одной строке должны иметь одинаковый размер, даже если их размер содержимого различен (что-то вроде этого реализовано в Android изначально при использовании RecyclerView с GridLayoutManager, очень просто)
Обновление
Он работает с UIView
, потому что я установил для его верхнего ограничения значение Safe Are'a top
Я не могу сделать это с UICollectionViewCell
Обновление 2
Кажется, у меня есть некоторый прогресс в этом ответе https://stackoverflow.com/a/25896386/7767664
Но вместо newFrame.size.width = CGFloat(ceilf(Float(size.width)))
мне нужно newFrame.size.height = CGFloat(ceilf(Float(size.height)))
, и когда мы используем это решение, донне добавляйте никаких ограничений к нижней части ячейки, иначе она не будет работать
С этим решением я не смогу использовать какие-либо поля, иначе некоторая часть станет невидимой в нижней части ячейки
Я думаю, этоможно решить с помощью этого вопроса https://stackoverflow.com/a/31279726/7767664