2013-09-22 123 views
14

iOS7真的讓我四處亂動。模糊佈局 - 「高度對'圖像視圖'模糊不清'」

這是從iOS6導入的項目,可以在我測試的所有設備上順利運行。 不知何故,圖片中的圖片視圖在運行時設置爲312x400,忽略了我在故事板中設置的高度規格。

我知道我錯過了一些關於autolayout的細節,但是什麼給了? 爲什麼我提供的高度根本不重要,爲什麼這與Xcode4.x/ios6有什麼不同?

Snapshot from Xcode5

回答

17

用於圖像視圖height屬性的佈局是不明確的。當您使用自動佈局時,它不會使用Interface Builder中圖像視圖的高度。相反,它使用圖像視圖上設置的約束。

在圖像視圖上創建高度約束,並將其設置爲所需的高度(如果是固定高度)。如果想要縮放高度,請將圖像視圖頂部和底部的約束條件限制爲圖像視圖的超級視圖。對於您提供的屏幕截圖,您可能需要設置從圖像視圖頂部到頂部佈局指南的限制條件。

+0

那麼,爲什麼還有虛擬框讓我指定高度?我能不能簡單地通過在適當的位置放置物品並設置固定尺寸來產生限制? – user

+1

這些字段存在於IB中,因此它只知道在IB內部顯示視圖的大小(如果啓用了自動佈局)。如果自動佈局被禁用,並且舊的struts和彈簧系統被啓用,則這些字段在運行時用於寬度和高度。啓用自動佈局功能後,如果需要固定大小,則必須創建約束。 – Andrew

0

如果您正在使用自動佈局,並且您需要設置可滿足垂直和水平佈局的約束條件。

在這種情況下,您可能會想要將高度和寬度約束添加到圖像視圖。

+0

我也在面對UICollectionView中的類似問題。我正在使用自動佈局在UICollectionViewCell中設置數據。每個東西在界面構建器中看起來都很完美運行應用程序後,我調試我的應用程序,它顯示UIView模糊的位置。 –

16

enter image description here

一套固有大小作爲佔位符。

+0

謝謝!這使得我的UIControl子類能夠以簡單的方式適應其中的標籤文本大小,而無需明確設置寬度約束並擺脫警告。 –