Вот макет У меня есть.
У меня есть UICollectionView, в который встроены UICollectionViews в его ячейках.На iPad, когда я поворачиваю экран, я могу сделать недействительным макет родительского UICollectionView, переопределив
func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
. Это прекрасно работает.Однако я не уверен, как перенаправить этот триггер на UICollectionViews внутри отдельных ячеек.
До сих пор я пытался сделать недействительным макет этих UICollectionViews до func layoutSubviews()
.Это не очень согласуется, так как некоторые ячейки все еще имеют старый макет.Однако это:
func willTransition(from oldLayout: UICollectionViewLayout, to newLayout: UICollectionViewLayout)
вообще не запускается для этого сценария.
Я также пробовал func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> Bool
в макете потока для встроенных UICollectionViews.
Я не использую саморазмерные ячейки, т. Е. Я предоставляю размер ячеек через
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
Какой самый простой способ решить эту проблему, чтобы получить согласованные результаты?
Цените любые указания в этом отношении.