亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

自動布局中的彈簧:在Xcode 5中使用約束均勻分布視圖

自動布局中的彈簧:在Xcode 5中使用約束均勻分布視圖

白板的微信 2019-09-02 16:05:25
我理解在Interface Builder中對齊,調整大小和分發視圖的舊Struts和Springs方法。但是,我似乎無法弄清楚如何使用Xcode 5使用自動布局均勻分布視圖。有一種方法可以使用Xcode 4,但該選項已經消失。我有7個按鈕排列在垂直堆棧中。在3.5英寸的布局上,它看起來很棒。當我在4英寸布局中預覽屏幕時,所有按鈕都保持緊密排列,并且最后一個按鈕下方有大量空間。我希望它們保持相同的高度,但我希望它們之間的空間能夠彎曲,以便它們可以在屏幕上展開。在此輸入圖像描述我已經能夠使按鈕的高度彎曲并填充空間,但這不是我想要的行為。我想學習如何使用自動布局來替換舊的Springs行為,但我似乎無法通過Interface Builder找到任何方法。我可以使用頂部按鈕,它可以是頂部邊緣的固定空間,也可以是頂部邊緣的比例空間,同樣適用于底部按鈕和底部邊緣。那些對我來說不那么重要,我也很擅長。但我真的需要弄清楚如何在視圖中的每個項目之間均勻分配額外的空間。
查看完整描述

2 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

請注意,在iOS 9中,此技術將變得不必要,因為UIStackView將自動執行分發。我將添加另一個答案來解釋它是如何工作的。

如何使用Autolayout執行均勻分布

單獨在Interface Builder中執行此操作的最簡單方法(而不是在代碼中構造約束)是使用“spacer”視圖:

  1. 絕對定位頂部和底部按鈕。

  2. 在所有按鈕之間放置間隔視圖。使用約束將它們水平放置(水平居中最簡單)并設置它們的寬度。

  3. 在每個按鈕與其上方和下方的間隔視圖之間進行約束,常數為0。

  4. 現在選擇所有間隔視圖并將它們的高度設置為相等。

第一個屏幕截圖顯示我在IB中進行設置:

我故意沒有糾正“錯位觀點”,因為我希望你在我設計約束時看到它的樣子。這是4英寸和3.5英寸屏幕的結果:

我把間隔視圖留下了黑色,只是為了向您展示這種技術是如何工作的,但當然在現實生活中你會讓它們變得透明,因而看不見!因此,用戶只能看到您的按鈕,均勻分布在任一屏幕高度上。

使用這種技術的原因是,盡管相等的概念執行了您所要求的值的分布,但約束只能在視圖的各個方面之間應用相等; 因此我們需要額外的視圖(間隔視圖),以便我們可以使其他東西等于(這里是間隔視圖的高度)。

其他方法

顯然,更靈活的方法是在代碼中分配約束。這可能聽起來令人生畏,但有很多第三方代碼可以幫助你,比如這類事情。

例如,如果我們有一個(可能是不可見的)上海華盈的高度作為一個邊界,以決定我們的四個按鈕的最大垂直分布,我們可以固定自己的上衣給上海華盈的有垂直中心constant0,但一multiplier0.0000010.666667,1.33333,和2.0分別(如果我們有四個按鈕); 現在按鈕將保持垂直分布,即使超視圖根據屏幕高度或其他任何方式改變大小。[在Xcode 5.1中,可以在Interface Builder中進行設置,但在早期版本的Xcode中是不可能的。]


查看完整回答
反對 回復 2019-09-02
  • 2 回答
  • 0 關注
  • 736 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號