1.6Auto Layout ------(1)Stack View

在Xcode7中,如果你注意的話,在菜單欄中Editor下拉列表中沒有了Pin這個選項.如圖1-6-1

圖1-6-1 Xcode7下的Editor菜單

而相反的在IB界面會出現(xiàn)一個Stack,如圖1-6-2和1-6-3

圖1-6-2 Xcode7新增加的Stack View
圖1-6-3 在對象庫中搜索Stack

如圖1-6-2中也是本小節(jié)的實例, 下面簡單介紹下Stack.

Stack View是Xcode7后新增的.從字面意思翻譯為"棧",顧名思義就可以看出他是放控件并管理棧內(nèi)視圖的地方.它分為水平和垂直方向來布局多個子控件.它也可以解決間距的問題.并進行很好的布局工作.

本節(jié)實例最終效果如圖1-6-4和圖1-6-5

圖1-6-4 實例豎屏
圖1-6-5 實例橫屏

下面就開始一步一步來認識Stack View:

??創(chuàng)建工程

??添加三張圖像到"First Stack"棧中并設(shè)置屬性

??添加 兩個按鈕和一個文本到" Second Stack"棧中

??將以上的兩個棧添加到"All Stack"棧中并添加"Grape Stack"

??代碼編寫


1?? 創(chuàng)建工程

我們打開Xcode7及以上版本,命名為"1.6-layout(Stack)"并導(dǎo)入相關(guān)資源圖片(聰樂寶logo和一張葡萄圖)如圖1-6-6

圖1-6-6 創(chuàng)建工程并添加圖片資源

2??添加三張圖像到"First Stack"棧中并設(shè)置屬性

我們先從對象庫中找到Image View,并將它拖入視圖中,并附上聰樂寶logo.然后我們選中ImageView按快捷鍵command + =將ImageView視圖的大小和圖片的大小做好匹配.然后我們再復(fù)制出另外兩個.選擇ImageView Command + C進行復(fù)制.Command + V進行粘貼.完成之后如圖1-6-7

圖1-6-7添加三張聰樂寶logo

添加完logo之后我們就開始進行將這三個logo放到"First Stack"棧中去.添加過程如圖1-6-8

圖1-6-8三個logo放到"First Stack"棧中

我們選中左邊的Stack View,并按回車鍵進行對棧命名"First Stack".選中First Stack 在右邊可以看到如圖1-6-9的屬性列表:

圖1-6-9 Stack的屬性

Axis(軸):表示Stack子控件是按水平布局還是按照垂直布局.

Alignment(對齊):控制子控件的對齊方式默認為Fill,我們在這里不需要改變.

Distribution(分配):控制子控件的分布方式,在這里我們需要圖片的寬高不變,因此選擇Equal Spacing(等間距).

Spacing(間距):控制子控件的最小間距.

Baseline Relative:決定了子視圖間的間隙是否根據(jù)基線測量得到

3??添加 兩個按鈕和一個文本到" Second Stack"棧中

以同樣的方法將"添加葡萄""移除葡萄"兩個按鈕和"聰樂寶"文本添加到視圖中.如圖1-6-10

圖1-6-10 添加兩個按鈕以及一個文本

添加完成之后并將文本的字體大小調(diào)節(jié)為27,當(dāng)我們增加字體之后可以看到,文字顯示不全.這時候我們選擇文本控件,用快捷鍵command + = 進行匹配.并進行文字居中顯示.下面我們進行添加第二個棧如圖1-6-11

圖1-6-11 將兩個按鈕一個文本放到Second Stack中去

4??將以上的兩個棧添加到"All Stack"棧中并添加"Grape Stack"

以上我們添加了First 和Second兩個棧,其實到此就可以了,但是為了讓大家看到Stack的強大功能,棧中棧,所以我就有了第4??步.我們選中First Stack 和 Second Stack,并加入棧中,布局方式改為垂直方式,如圖1-6-12

圖1-6-12將兩個棧添加到"All Stack"棧

添加Grape Stack 棧如圖1-6-13

圖1-6-13 添加葡萄活動棧

添加完Grape Stac之后需要在屬性編輯器中更改它的Distribution為Fill Equally.不然在添加的時候布局會出問題.

5??代碼編寫

下一步就開始連接視圖和代碼進行代碼編寫了,如圖1-6-14將視圖中所用控件連接到代碼中去

圖1-6-14將視圖中所用控件連接到代碼中

下面就開始進行代碼編寫,如圖1-6-15

圖1-6-15 實例代碼部分編寫

subView和arrangedSubView

如果想添加一個subView給Stack View來管理,我們應(yīng)該代用public func addArrangedSubview(view: UIView)或者public func insertArrangedSubview(view: UIView, atIndex stackIndex: Int).? arrangedSubviews數(shù)組是subviews屬性的子集潮瓶。

在這里注意

①---無論何時 stack 視圖增加了一個視圖到它的 arrangedSubviews 數(shù)組圣絮,其也將把這個視圖作為子視圖增加. (如實例中并沒有將圖片用addSubview方法添加).

②---無論何時一個子視圖從 stack 視圖中被移除奇颠,那么 stack 視圖也將將其從 arrangedSubviews 數(shù)組中移除盈简。(當(dāng)然在實例中g(shù)rapeStack.removeArrangedSubview(grapeImageLast!)方法可以刪除.)

③---從 arrangedSubviews 移除一個視圖并不會將其作為子視圖移除。stack 視圖將不再管理該視圖的尺寸和位置陶因,但是該視圖仍將是視圖結(jié)構(gòu)的一部分堰汉,并且當(dāng)其可見的情況下仍會被渲染到屏幕上。(如實例中將圖片移除棧時,仍然需要將其從父視圖移除).

如果在敲代碼中遇到任何問題,請以以下方式聯(lián)系.

源碼地址:Github

歡迎加入Swift QQ交流群:513653400

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末费什,一起剝皮案震驚了整個濱河市钾恢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鸳址,老刑警劉巖瘩蚪,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異稿黍,居然都是意外死亡疹瘦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門巡球,熙熙樓的掌柜王于貴愁眉苦臉地迎上來言沐,“玉大人,你說我怎么就攤上這事酣栈∠找龋” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵矿筝,是天一觀的道長起便。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么缨睡? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任鸟悴,我火速辦了婚禮,結(jié)果婚禮上奖年,老公的妹妹穿的比我還像新娘细诸。我一直安慰自己,他們只是感情好陋守,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布震贵。 她就那樣靜靜地躺著,像睡著了一般水评。 火紅的嫁衣襯著肌膚如雪猩系。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天中燥,我揣著相機與錄音寇甸,去河邊找鬼。 笑死疗涉,一個胖子當(dāng)著我的面吹牛拿霉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咱扣,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼绽淘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了闹伪?” 一聲冷哼從身側(cè)響起沪铭,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎偏瓤,沒想到半個月后杀怠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡厅克,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年驮肉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片已骇。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡离钝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出褪储,到底是詐尸還是另有隱情卵渴,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布鲤竹,位于F島的核電站浪读,受9級特大地震影響昔榴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碘橘,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一互订、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧痘拆,春花似錦仰禽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至桥氏,卻和暖如春温峭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背字支。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工凤藏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人堕伪。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓清笨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親刃跛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,076評論 25 707
  • 翻譯自“Auto Layout Guide”苛萎。 2 自動布局細則手冊 2.1 堆棧視圖 接下來的章節(jié)展示了如何使用...
    lakerszhy閱讀 1,864評論 3 9
  • 這是關(guān)于自動布局的第二篇文章桨昙。<< Auto Layout的使用 上一篇文章介紹了如何使用Auto Layout,...
    pro648閱讀 4,380評論 0 5
  • 當(dāng)我看著一片云朵發(fā)呆的時候腌歉,時光似乎變得支離破碎蛙酪,空間隨著破碎的時光變得模糊,也許是在陽臺上翘盖,也許在列車上桂塞,或是在...
    陳小煩_閱讀 345評論 8 0
  • 在我的印象里,日本是個邪惡的國家馍驯,我想大多數(shù)的人肯定都有我這樣的想法阁危,因為就跟貓和老鼠一樣,上一輩子結(jié)下了仇汰瘫,...
    我是奢侈品閱讀 336評論 0 0