ios9控件新寵:UIStackView

簡介:UIStackView 類提供了一個高效的接口用於平鋪一行或一列的視圖組合。Stack視圖使你依靠自動佈局的能力,創建用戶接口使得可以動態的調整設備朝向、屏幕尺寸及任何可用範圍內的變化

佈局內容
這裏寫圖片描述
打開Main.Storyboard,選擇其中一個Stack View可以查看其選項,並選中一個Stack View。在 Attributes Inspector中,注意Stack View下面列出的選擇。

Axis表示Stack View的subview是水平排布還是垂直排布。Alignment控制subview對齊方式。Distribution定義subview的分佈方式。Spacing 爲subview間的最小間距。

把術語簡化一下,你可這樣理解:Alignment 用於控制X 和 Y值,而Distribution 用於控制高度和寬度。另兩個值都會影響對齊。如果選中Baseline Relative將根據subview的基線調整垂直間距。如果選中Layout Margins Relative 將相對於標準邊界空白來調整subview位置。

另一個需要記住的是,Stack View會被當成Container View。所以它是一個不會被渲染的UIView子類。它不像其他UIView子類一樣,會被渲染到屏幕上。這也意味着設置其backgroundColor屬性或重載drawRect:方法都不會產生任何效果。

UIStackView 是 UIView 的非渲染型子類。它沒有提供其自有的任何用戶接口。相反的,它只管理被其管理的視圖的位置和尺寸。因此,有些屬性(如 backgroundColor)在 stack 視圖上是無效的。類似的,你無法重寫 layerClass,drawRect: 或 drawLayer:inContext: 方法。

這裏有一系列的屬性來定義 stack 視圖如何平鋪其內容。

axis(軸向) 屬性決定了 stack 的朝向,只有垂直或水平;

distribution(分佈) 屬性決定了其管理的視圖在沿着其軸向上的佈局;

alignment(對齊) 屬性決定了其管理的視圖在垂直於其軸向上的佈局;

spacing(空隙) 屬性決定了其管理的視圖間的最小間隙;

baselineRelativeArrangement 屬性決定了其視圖間的垂直間隙是否根據基線測量得到;

layoutMarginsRelativeArrangement 屬性決定了 stack 視圖平鋪其管理的視圖時是否要參照它的佈局邊距

subView和arrangedSubView

開始使用Stack View前,我們先看一下它的屬性subViews和arrangedSubvies屬性的不同。如果你想添加一個subview給Stack View管理,你應該調用addArrangedSubview:或insertArrangedSubview:atIndex: arrangedSubviews數組是subviews屬性的子集。

要移除Stack View管理的subview,需要調用removeArrangedSubview:和removeFromSuperview。移除arrangedSubview只是確保Stack View不再管理其約束,而非從視圖層次結構中刪除,理解這一點非常重要。

常用的方法
創建 Stack 視圖
- initWithArrangedSubviews: (New in iOS 9.0)
管理安排的子視圖
- addArrangedSubview: (New in iOS 9.0)
arrangedSubviews Property (New in iOS 9.0)
- insertArrangedSubview:atIndex: (New in iOS 9.0)
- removeArrangedSubview: (New in iOS 9.0)

設置佈局
alignment Property (New in iOS 9.0)
axis Property (New in iOS 9.0)
baselineRelativeArrangement Property (New in iOS 9.0)
distribution Property (New in iOS 9.0)
layoutMarginsRelativeArrangement Property (New in iOS 9.0)
spacing Property (New in iOS 9.0)

常量
UIStackViewDistribution
UIStackViewAlignment

參考文章:
http://mobile.51cto.com/iphone-482515.htm
http://www.cocoachina.com/ios/20150623/12233.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章