iOS AutoLayout自動布局中級開發教程(3)-等寬等高等中心

來源:互聯網
上載者:User

標籤:autolayout進階教程   等高等寬等中心   

前面講到了一些關於邊界約束的知識,但那些基礎知識來解決一些實際問題還是會有點力不從心的;所以我們需要更進階的設定約束的辦法,設定等高等寬等中心:

見:



圖中有3個button按鈕, 現在要求3個button等寬,等高 , 且 垂直中心在一條線上,這該如何設定?

按照前面的說法,約束其實是一次方程組的求解,那麼 通過觀察可以得之,如果我們設定好了button之間的左右邊界約束,然後再讓3個button等寬就可以;

那麼就會有  3x  = 寬度; 所以 每一個Button的寬度就可以計算出來了給button1添加  top約束

具體做法:

首先設定好 Button之間的邊界約束(先不要update Frames),假設都為20, 


等寬 設法:

選中button2 ,按住 control  滑鼠拖拽一條線到 button1上會出現如下 選項:



選擇Equal Widths等寬, Equal Heights等高,  center Y垂直中心 相等  (可能會 略有 偏差, centerY 的值是可以調節的! 預設的  center Y就是決定你當前的在的位置 )

 button 3 的操作類似, 那麼可以 想向  button1,2,3都會在 同一水平線上了,寬度高度也都相等了!

效果如下:



大家可以看到,出現了寬度高度都相等的 按鈕,但是  button 3為什麼 不和其他兩個 button 在一條水平線上呢?

這是因為  center Y預設 值會根據你的實際位置 進行調整,所以如果你需要 水平齊,需要  修改  centerY 的值為0即可!

修改  center Y的值即可

可以看出,這個設定的關鍵點是  :從一個  視圖 按住 control 拖拽到另一個 視圖(包括父視圖)來產生 ,寬高,中心,邊界的關係!

我們需要根據實際情況進行調整  其值!

即使是剛才設定的  約束 是  等寬的也是可以 隨意調節 每一個  按鈕的寬度的  ,如


可以改變其值,原理  類似 於    從   3x  = K  ,變為了  1x +1.5x +2x  =K是一樣的道理,那麼每一個視圖的寬度就算出來了!

總結一下:

我們通過  按住 選中一個  視圖後  ,按住  control 拖拽到另外一個視圖上 ,那麼就可以設定兩個 視圖的關係!

補充:

center  X可以設定,兩個  視圖(包括子視圖和父視圖)之間的 水平中心在一條線上:

如是  center X相等的  一些視圖,大家可以看到 一條很長的線的提示!

從Button4 拖拽到  他的父視圖 view上可以見到如下的選項,也可以拖拽到 左邊的 視圖列表(選項更多!)


拖拽鬆手看到如下選項:



我們選擇  Center  Horizontally ...就可以設定  button4的中心與 父視圖(或其他視圖)的水平中心是在一條線上了!

Center  Vert...就是   Center  Y,垂直中心相等

ps:如果你需要 左右移動,或者  上線移動,只需改變  Center X或  Center Y的值即可!



把 所有的 center X和 center Y改為 0即可看到如下效果:


原文地址http://blog.csdn.net/yangbingbinga/article/details/43069341


iOS AutoLayout自動布局中級開發教程(3)-等寬等高等中心

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.