2

У меня есть простой UICollectionView, определенный в моей раскадровке (см. Снимок экрана).UICollectionView не правильный размер в viewDidLoad

enter image description here

Я использую автоматическую раскладку, то UICollectionView прикрепляются к надтаблицам для ведущих, задних и верхней части и на панель инструментов для нижнего.

Когда я показываю в консоли размер UICollectionView в viewDidLoad с:

NSLog(@"%s CollectionView ========== > height:%f width:%f", __PRETTY_FUNCTION__,self.theCollectionView.bounds.size.height, self.theCollectionView.bounds.size.width); 

я получаю: CollectionView ==========> Высота рамы: 492,000000 ширина: 600,000000

Этот размер тот, который также отображается в раскадровке (Ширина: 600 Высота: 492).

Когда я запускаю тот же журнал в viewDidAppear, я получаю: CollectionView ==========> Высота рамы: 663,000000 ширина: +1024,000000

чего я ожидал. Я удивляюсь, что у вас есть соответствующий размер только в viewDidAppear, пожалуйста, можете ли вы объяснить или что-то не так в моей раскадровке?

Thanks,

Sébastien.

+1

Это ожидаемое поведение. Фреймы неверны в viewDidLoad. – almas

+0

спасибо за быструю обратную связь. Итак, когда я могу полагаться на размер кадров? – sebastien

+0

см. Ответ @Tanner Nelson – almas

ответ

3

Для размера кадра ничего зависит, я обычно использую

override func viewDidLayoutSubviews() 

Это будет принимать во внимание автоповорота, а также.

+0

Спасибо, я перегрузил viewDidLayoutSubviews(), и размер кадра правильный. – sebastien

Смежные вопросы