我試圖創建界面生成以下自動佈局:iOS自動佈局:這可以用IB來完成嗎?
在視圖的頂部:適合該設備的寬度
- 圖像視圖
- 圖像視圖是正方形(高度也等於寬度裝置的)
灌裝圖像視圖下方的空間的其餘部分:
-
高度相等的
- 3個按鈕
- 他們一起填寫廣場下方的空間的其餘部分在頂部
這能在IB僅做了什麼?
斯科特
我試圖創建界面生成以下自動佈局:iOS自動佈局:這可以用IB來完成嗎?
在視圖的頂部:適合該設備的寬度
灌裝圖像視圖下方的空間的其餘部分:
這能在IB僅做了什麼?
斯科特
不,不可能的,因爲你不能表達在Interface Builder關係的約束。
除了圖像視圖的高度,您可以執行其他任何操作(幾乎可以看到編輯)。您可以在視圖上設置一個恆定的高度限制(可能設置爲iPhone屏幕的寬度),然後創建一個插口。在運行時,如果你在iPad上運行(我認爲要求是在iPad和iPhone之間工作,而不是在縱向和橫向上工作,因爲你的描述對橫向沒有意義),那麼刪除這個約束並添加一個將圖像視圖的高度固定爲與寬度相同的新圖像。
下面介紹如何設置其餘約束。我假設你從一個視圖控制器開始,只是包含它的主視圖插座。
你希望它看起來是這樣的:
出於某種原因,IB增加,並且不會讓我刪除,高度約束按鈕中的一個。它看起來並不樂意擁有三個相同高度的按鈕,並且根據圖像視圖的間距和高度來推導出每個按鈕在運行時的高度。在運行時也可能需要刪除這個約束,或者我可能錯過了一些東西,而把它們混合在一起。無論如何,希望上面列出的原則是有幫助的。
要使UIImageView
平方,您需要製作約束代碼。我認爲IB的所有其他要求都可以涵蓋,但個人而言,我建議您通過編碼進行編碼。
祝你好運。
謝謝。假設我在IB中將圖像高度設置爲常量並通過代碼進行定製。我如何配置IB中的其餘約束條件? – scttnlsn
我會更新答案。我目前正在撰寫關於這個確切主題的博客文章,但尚未完成,否則我只是指出你的意思! – jrturton
真棒 - 興奮地閱讀博客文章。 – scttnlsn