談?wù)勈褂肁utoLayout如何實(shí)現(xiàn)N等分布局

關(guān)于Autolayout

自從Autolayout引入以來(lái),受到越來(lái)越多開發(fā)者的追捧,蘋果官方也推薦開發(fā)者盡量使用Autolayout來(lái)布局UI界面,本人在日常的開發(fā)中能用Autolayout實(shí)現(xiàn)的絕不用代碼,不方便實(shí)現(xiàn)的也想著法子實(shí)現(xiàn),可以這么說(shuō),Autolayout對(duì)于開發(fā)效率的提升不是一點(diǎn)兩點(diǎn),

如果你對(duì)Autolayout還不了解或還未使用,可以閱讀這篇博文寒哥細(xì)談之AutoLayout全解.

總的來(lái)說(shuō)只要在開發(fā)中多實(shí)踐還是比較容易掌握的.閑言少敘,接下來(lái)進(jìn)入主題.
在開發(fā)中我們可能會(huì)遇到等分布局的需求,這里我主要介紹兩種方法,如果還有其他更好的方法,歡迎交流.

  1. 使用約束,設(shè)置Width屬性的值
  2. 使用UIStackView(最低支持iOS9)
一.使用約束

1.1 在一個(gè)View中放置一個(gè)View


image.png

1.2 設(shè)置View的上下左邊距

image.png

1.3當(dāng)然這些約束還是不夠的,接下來(lái)設(shè)置View的寬度

image.png

選中藍(lán)色的子View,按住control鍵,拖向父View,會(huì)出現(xiàn)上圖的黑色框,選擇Equal Widths,這步操作是讓子View的寬度和父View寬度相等,但這不是我們想要的,接下來(lái)是最關(guān)鍵的一步
1.4 設(shè)置約束Width Multiplier的值

image.png

1.5 這時(shí)候第一個(gè)View的寬度為父View寬度的1/3,其他兩個(gè)View可以采用上面的方法設(shè)置,也可以設(shè)置其寬度和藍(lán)色View的寬度相等,完成后是這樣子的,是不是很簡(jiǎn)單.

image.png
二.使用UIStackView
關(guān)于UIStackView

UIStackView是iOS9 引入的一個(gè)布局神器,StackView提供了橫向和縱向的線性布局功能。當(dāng)多個(gè)View被嵌入到StackView,你不再需要去為這寫個(gè)View去定義布局約束,StackView會(huì)自動(dòng)對(duì)這些子視圖進(jìn)行布局處理,是不是很神奇,那就讓我們開始接下來(lái)的神奇之旅吧.

想了解更多UIStackView的信息,可以參考這篇文章IOS9 Xcode7 下的布局神器 Stack Views

還是接上面的例子,咱們展示一下使用StackView如何實(shí)現(xiàn)等分布局
2.1 添加三個(gè)View

image.png

2.2 選中三個(gè)View,點(diǎn)擊右下角類似于向下箭頭的按鈕

image.png

點(diǎn)擊之后效果是這樣的

image.png

三個(gè)View手牽手在一起了,但是并沒(méi)有相對(duì)于父View實(shí)現(xiàn)等分,其實(shí)也不難理解StackView雖然能實(shí)現(xiàn)嵌入子View線性等分,但也必須也指定StackView相對(duì)于父View的約束,不然StackView不知道以誰(shuí)為參照物,接下來(lái)設(shè)置StackView相對(duì)于父View的約束

image.png
image.png

這時(shí)候三個(gè)子View 并沒(méi)有實(shí)現(xiàn)等分,這里需要介紹一下StackView的四個(gè)屬性

  1. Axis:子控件的布局方向
  2. Alignment:子控件對(duì)齊方式
  3. Distrubution:子控件的大小如何計(jì)算
  4. spacing:子控件的最小間距

只要設(shè)置一下這四個(gè)屬性,等分布局將展現(xiàn)在眼前

image.png

大功告成.
需要注意的是UIStackView是iOS 9才引入的,因此在使用的時(shí)候要注意iOS9之前系統(tǒng)的兼容.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 目錄 0、前言 一、Auto Layout前世今生 二、Auto Layout基礎(chǔ)知識(shí) 1.Auto Layout...
    浮游lb閱讀 25,440評(píng)論 3 90
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,365評(píng)論 4 61
  • 這是一篇挺老的文章,主要就是介紹在iOS9時(shí)推出的控件UIStackView。我發(fā)現(xiàn)網(wǎng)上的資料并不算多,而AppC...
    Liberalism閱讀 11,249評(píng)論 2 26
  • 距離iOS9發(fā)布已經(jīng)接近一年了,我們即將引來(lái)新的iOS 10,為何在這個(gè)時(shí)候來(lái)介紹iOS9中新引入的一個(gè)布局組件呢...
    CZ_iOS閱讀 7,845評(píng)論 9 59
  • 轉(zhuǎn)載:http://www.cocoachina.com/swift/20161201/18198.html 前言...
    F麥子閱讀 4,505評(píng)論 2 8

友情鏈接更多精彩內(nèi)容