[iOS] Constraint study

針對Constraint我進行了一些測試,以下是紀錄。

環境

iOS 9,Xcode 7.1

View Controller裡面都是放一個全螢幕的table view。

測試

View Controller內的table view和螢幕上緣進行對齊,採取不同的attributes。

結果

對齊topLayoutGuide的top,table view的top會對齊著全螢幕視窗的最上面。

對齊topLayoutGuide的bottom,table view的top會對齊著Navigation Bar的bottom。若隱藏Navigation Bar,table view的top會對齊著status Bar的bottom。

另外,對齊topLayoutGuide的bottom會讓table view的上緣和Navigation Bar之間留有64px的空白,應為主動針對畫面內含有scroll view進行調整後的結果。

若將automaticallyAdjustsScrollViewInsets設定為NO,則對齊topLayoutGuide的top的table view上面的row會壓在Navigation Bar下面。對齊topLayoutGuide的bottom的table view上面的row會剛好切齊在Navigation Bar下面,總之,automaticallyAdjustsScrollViewInsets有很大的影響。

如果希望內容可以拉到最上面,那對齊topLayoutGuide的top,然後automaticallyAdjustsScrollViewInsets保持YES就可以正常顯示。反之,希望內容只有到Navigation Bar下方,那就把automaticallyAdjustsScrollViewInsets設定成NO就可以正常顯示。

如果View Controller有使用Xib,在xib裡面,table view的top對齊superview的top,那會對齊全螢幕視窗的最上面。此外,table view的內容會對齊在status bar的上緣(top),




留言