2015-10-06 39 views
0

我對iPad應用程序中的UIButton進行了約束,以便頂部的一排按鈕與UIImageView保持一定的距離,因此最下面一排按鈕保持固定在底部附近。但是,當我旋轉它全錯了。以下是肖像時和風景時的圖像。考慮到景觀模式下垂直房地產的數量較少,如何解決這個問題呢?AutoLayout在每個其他頂部有按鈕

enter image description here

enter image description here

回答

1

你要麼需要在旋轉縮放你的子視圖的大小,或使用滾動視圖。

由於您將按鈕定位在離屏幕底部一定距離處,而不是保持一致的間距,因此當沒有足夠的空間時它們會重疊。 (我從你的截圖中假設它正在打破2排按鈕之間的約束,假設有一個)

你可以將每行按鈕的可用空間與主視圖的總垂直大小。例如,讓圖像佔總垂直空間的50%,併爲每行按鈕設置25%(我將爲每行設置一個容器視圖,然後向容器添加約束)。確保您的圖像/按鈕正確縮放並保持寬高比。

另一種選擇是識別視圖何時旋轉,並修改所有約束,以便按鈕的所有佈局排成一行,但這可能需要大量編碼來交換/更改大部分約束。

+0

每行按鈕之間當前沒有垂直約束間隙。如何添加,還是應該添加?我爲這個特定的應用程序使用XIB而不是Storyboard,所以它對現在爲AutoLayout編寫的大部分教程都有一定的影響。你認爲最簡單的方法是什麼?我很想在旋轉時只有一行,但不知道如何完成。 – user717452

+0

嘗試在每行按鈕之間放置一個垂直約束。例如,從一個按鈕向下拖動到下面的按鈕,然後選擇「垂直間距」。然後在Size Inspector中查找約束,將類型從「Equal」更改爲「Greater than或Equal」,並將常量設置爲0.看看這是否適合你。儘管取決於其他約束條件的設置,但這可能不起作用。 – Stonz2

+0

@ user717452我看到你的兩個屏幕截圖均來自iPad。如果這是唯一的目標設備,則需要考慮的另一件事是將所有6個按鈕放在一個行中,無論是縱向還是橫向,因爲在更大的iPad屏幕上會有足夠的空間來完成此操作。 – Stonz2