2012-12-21 39 views
1

我正在使用自動佈局重新創建UI,並在頂部有一個導航欄,並且UIImageView的2x2網格填充了屏幕的其餘部分。我放入了所有的約束條件,這樣它就可以在任何方向上保持這種安排,並且在UIImageViews沒有圖像的情況下工作良好。當我在UIImageViews中以編程方式加載圖像時,即使我有一些應該阻止這種情況的約束,它們也會更改大小和位置。如何防止使用Autolay調整UIImageView的大小

我擁有所有的自動調整遮罩,並將UIImageViews設置爲Aspect fit。

這種自動佈局的東西對我來說是新的,但我認爲我有它的工作......直到我把圖像放在那裏。爲什麼會改變UIImageViews的大小和位置?

感謝您的幫助!

+2

確保每個UIImageViews的具有高度和寬度的限制 – yuf

+0

如果我硬編碼的寬度和高度的限制,不就是覆蓋當它切換方向時自動佈局?我認爲限制是爲了避免硬編碼的寬度和高度值... – pizzafilms

+0

否...這是爲了避免硬編碼框架,因爲框架現在隨着您的容器大小變化而變化。然而,如果你想要的行爲是爲你的框架的大小不會改變......那麼這就是你所做的,但框架的原始值仍然可以取決於容器 – yuf

回答

3

如果將它們與視圖控制器中的插座相鏈接,則可以在運行時修改約束條件。

對於您的情況,您將添加一個寬度和高度約束並將它們鏈接到兩個插座。 然後,在知道圖像尺寸後,您可以更改常數值。

我描述這個細節中作類似用途情況下,我在這裏:http://www.cocoanetics.com/2012/11/first-good-auto-layout-use-case/

+2

這是一個很大的幫助,謝謝。我很高興我不是唯一一個有限制的瘋狂時間。雖然我喜歡整個事物背後的推理,但實現還有很多不足之處。再次感謝。 – pizzafilms