В viewDidLoad
функция моего UIViewController
Я звоню
print("\(UIScreen.main.bounds.size.width) \(collectionView.frame.width)")
и он печатает
320.0 375.0
Как этовозможный?UICollectionView
должен иметь такую же ширину, мб меньше, но определенно не больше
Настройки этого вида в раскадровке:
![enter image description here](https://i.stack.imgur.com/2KOXV.png)
каждыйограничение установлено как
![enter image description here](https://i.stack.imgur.com/YfmMC.png)
Так что я тестирую его на iPhone SE Simulator, но в раскадровке у меня iPhone 8.
![enter image description here](https://i.stack.imgur.com/yvQPP.png)
![enter image description here](https://i.stack.imgur.com/djJ0w.png)
Но я считаю, что это не должно иметь никакого значения, когда я использую автоматическое расположение (ограничения, чтобы размер моего представления соответствовал размерубезопасная зона)
Ширина iPhone 8 составляет 375 точек, а iPhone SE составляет 320:
![enter image description here](https://i.stack.imgur.com/dNr5h.png)
Обновление
Кажется, viewDidLoad
возвращает размеры вашего последнего выбранного устройства в раскадровке (довольно некрасиво)
Так что, чтобы получить правильные данные о представлениях, я должен получить размеры в viewDidAppear
В Android, если размер какого-либо вида еще не доступен (вид еще не был завышен), он просто возвращает нули (ширина == 0, высота == 0), но в iOS вы получаете ширину и высоту из Xcode Storyboaво время выполнения ... Действительно?