2013-02-26 72 views
1

我試圖使用自動佈局來最小化UIImageView(綠色)和UICollectionView(紅色)之間的差距。在模擬器(我假設是顯示一個iPhone 4尺寸屏幕)的兩個視圖排隊很好,與之間只有很小的間隙:我的實際設備上UIImageView:通過自動佈局使用所有可用空間

iPhone 4 simulator image

然而,iPhone 5具有較大屏幕上,還有很大的差距:

iPhone 5 actual device image

我怎麼可以指定自動佈局約束,使得UIImageView(綠盒)佔據儘可能多的空間可用,無論屏幕尺寸,同時保持UICollectionView固定到底部的工具欄?

我試過在XCode中調整約束條件,添加引腳等實驗沒有太多成功。我覺得我只是在不知道自己是如何工作的,並且還沒有找到一個很好的教程來解釋如何做一些事情,比如「擴大佔用儘可能多的垂直空間」。

+0

我昨天回答了類似問題(http://stackoverflow.com/questions/15076362/uiview-element-layout-constraints)。現在基本上,你的紅色視圖似乎有一個**常數**高度約束,並且**固定到底部** y-約束。雖然你可能想要一個固定的** H **高度用於綠色視圖,而紅色的高度可以在'totalHeight - H'上自動拉伸高度。你已經使用約束,或UIView的'autoresizingMask'? – Vinzzz 2013-02-26 22:36:12

回答

2

因此,您需要指定兩個視圖之間的間隙是固定的,並且底部視圖的高度也是固定的。在視覺格式的語言,這將是

"V:|[topView]-[bottomView(==150)]|" 

V:意味着這是一個垂直約束

|[topView]指銷的topView儘量靠近上海華儘可能的頂部邊緣上方。

-意味着兩個視圖之間的空間是固定的

[bottomView(==150)]意味着bottomView必須是150個像素

]|意味着bottomView底部邊緣被固定在上海華的底部邊緣

您還可以在界面生成器中添加這些約束,方法是在底部視圖上設置固定高度,並在頂部視圖和底部視圖之間設置固定間距

+0

不希望自我宣傳,但我寫了一些有關在可可上使用Autolayout的教程,但這些原則也適用於Cocoa-touch:http://comelearncocoawithme.blogspot.co.uk/2011/08/laying-out -interfaces-automated.html – iain 2013-02-26 23:57:50

+0

這是Cocoa-touch的另一個教程:http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2 – iain 2013-02-27 00:31:56

+0

這是RubyMotion ASCII佈局嗎?希望我可以使用它。 Storyboard/IB令人發狂。我在故事板中選擇一個約束,然後細節窗格完全變爲空白。我無法編輯它! – 2013-02-27 01:37:11

相關問題