2013-01-14 50 views
2

我試圖創建界面生成以下自動佈局:iOS自動佈局:這可以用IB來完成嗎?

在視圖的頂部:適合該設備的寬度

  • 圖像視圖
  • 圖像視圖是正方形(高度也等於寬度裝置的)

灌裝圖像視圖下方的空間的其餘部分:

    高度相等的
  • 3個按鈕
  • 他們一起填寫廣場下方的空間的其餘部分在頂部

這能在IB僅做了什麼?

斯科特

回答

4

不,不可能的,因爲你不能表達在Interface Builder關係的約束。

除了圖像視圖的高度,您可以執行其他任何操作(幾乎可以看到編輯)。您可以在視圖上設置一個恆定的高度限制(可能設置爲iPhone屏幕的寬度),然後創建一個插口。在運行時,如果你在iPad上運行(我認爲要求是在iPad和iPhone之間工作,而不是在縱向和橫向上工作,因爲你的描述對橫向沒有意義),那麼刪除這個約束並添加一個將圖像視圖的高度固定爲與寬度相同的新圖像。

下面介紹如何設置其餘約束。我假設你從一個視圖控制器開始,只是包含它的主視圖插座。

  1. 拖動圖像視圖時,默認會填充屏幕。
  2. 使用固定菜單將圖像視圖的高度固定爲320(然後編輯創建的約束)。這是您創建插件的限制條件。
  3. 將在三個按鈕
  4. 選擇所有這些,銷的高度同樣
  5. 選擇底部的按鈕,使用鋼釘菜單,PIN底部空間到上海華
  6. 選擇的約束,並勾選「標準「複選框。這將增加你的三個按鈕來填充剩餘的空間(加上一些間距)。
  7. 選擇所有三個按鈕並均等固定寬度
  8. 選擇一個按鈕並將尾隨空間固定到超級視圖。像之前一樣,選擇這個約束並勾選「標準」複選框。按鈕將會增長以填充視圖的寬度。

你希望它看起來是這樣的:enter image description here

出於某種原因,IB增加,並且不會讓我刪除,高度約束按鈕中的一個。它看起來並不樂意擁有三個相同高度的按鈕,並且根據圖像視圖的間距和高度來推導出每個按鈕在運行時的高度。在運行時也可能需要刪除這個約束,或者我可能錯過了一些東西,而把它們混合在一起。無論如何,希望上面列出的原則是有幫助的。

+0

謝謝。假設我在IB中將圖像高度設置爲常量並通過代碼進行定製。我如何配置IB中的其餘約束條件? – scttnlsn

+0

我會更新答案。我目前正在撰寫關於這個確切主題的博客文章,但尚未完成,否則我只是指出你的意思! – jrturton

+0

真棒 - 興奮地閱讀博客文章。 – scttnlsn

0

要使UIImageView平方,您需要製作約束代碼。我認爲IB的所有其他要求都可以涵蓋,但個人而言,我建議您通過編碼進行編碼。

祝你好運。

相關問題