2014-10-04 77 views
21

我試圖使用自動佈局約束在視圖中自動調整的幾個類似尺寸的按鈕,得到下述效果:相等的寬度並在自動佈局按鈕之間相等的間隔

之前調整

調整大小

After stretchingBefore stretching

期望的效果

正如你所看到的,我希望按鈕的大小相同,並且我還希望每個按鈕之間的間隔爲20點。乍看起來非常簡單,所以我設置了以下限制:

  • 按鈕:空間從左側相鄰= 20(包含最左邊和最右邊,最按鈕)
  • 按鈕:空間右鄰= 20(包含最左邊和最右邊,最按鈕)
  • 按鈕:相同的寬度

調整

後居然會發生什麼enter image description here

當在預覽或當我測試運行我的iPhone /模擬器中的應用程序時,按鈕調整大小,甚至不遵循我爲它設置的寬度約束。實際上,包含視圖的視圖也會調整大小以適應新的按鈕大小。任何人都知道如何純粹在界面構建器中解決這個問題?

+0

您是否實現瞭如上所述添加「20」像素空間?你能分享一些相同的東西嗎? – Jasmeet 2015-01-08 06:39:10

+1

@Jeev是的,我重做了一切。不幸的是,我無法找出我做錯了什麼,因此我沒有發佈答案。以上3點足以滿足約束條件。 – 2015-01-09 08:30:08

+0

從它的外觀你可能有內容抗壓優先不小於等寬限制的優先 – DeFrenZ 2015-02-03 17:02:28

回答

3

這個問題似乎是因爲錯誤content hugging prioritycontent compression Resistance priority。所以你應該把它們設置爲低內容擁抱和高壓縮阻力(都應該具有相同的值)。

因爲內容擁抱是抵制增長和內容壓縮的屬性抵抗優先權是抵制縮小的觀點。欲瞭解更多有關這些信息,你可以找到這個Question

+0

感謝您的回覆。我嘗試將按鈕和視圖的內容擁抱優先級設置爲250,將內容壓縮電阻優先級設置爲1000,但是同樣發生。 – 2014-10-04 13:10:12

+0

根據您發佈的其他問題的鏈接中的「內容擁抱優先級」的定義,似乎我的問題與擁抱有關。我也嘗試將「內容擁抱優先級」設置爲1的按鈕和視圖,但它仍然是一樣的。 – 2014-10-04 13:21:49

+0

@JijieJie朋友檢查一下,如果你正在使用sizeToFitContent到你的按鈕? – iHulk 2014-10-04 13:32:38

6

在界面生成器中,您可以像上面描述的那樣設置按鈕之間的間距約束。然後,您可以命令選擇所有對象並指定「等寬」約束以應用於所選對象。

15

環境:
- 水平間距所有按鈕
之間 - - 相等的寬度的所有按鈕
導致至上海華爲第一個按鈕和尾隨到SuperView已經最後一個按鈕
應該完成這項工作。除非你在超視圖有問題(例如ScrollView缺少約束)

4

最後我忘記了如何解決這個問題。我已經測試過它的魅力。

  1. 添加約束空間項目與20個單位的保證金
  2. 加約束,以年齡
  3. 現在棘手的部分
    • 爲每個項目添加約束寬度相等的
    • 選擇所有這個新的約束和改變其屬性
    • 設置乘數值1:5
    • 設定常數-24(6分離的項目和父邊緣給出120之間,這乘以乘數值1:5給出24
    • 更新項目幀

這就是它!下面的圖片展示它是如何工作在Interface Builder:

interface builder result

設置模擬大小「自由」和測試不同的寬度(我SETT這330)。

相關問題