2015-09-14 20 views
2

我在故事板中定義了一個簡單的UICollectionView(請參見屏幕截圖)。UICollectionView尺寸不正確viewDidLoad

enter image description here

我使用的自動佈局

,該UICollectionView連接到SuperView已經領先,尾部和頂部和工具欄的底部。

當我在控制檯中viewDidLoad中與顯示UICollectionView的大小:

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中才有適當的尺寸,請你解釋一下,還是在我的故事板中有什麼問題?

謝謝,

Sébastien。

+1

這是預期的行爲。 viewDidLoad中的框架不正確。 – almas

+0

感謝您的快速反饋。 那我什麼時候可以依賴Frames的大小呢? – sebastien

+0

請參閱@Tanner Nelson的答案 – almas

回答

3

對於任何幀大小相關的,我通常使用

override func viewDidLayoutSubviews() 

這將考慮到自動旋轉。

+0

謝謝,我重載了viewDidLayoutSubviews()並且幀大小是正確的。 – sebastien