成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS9每天多了解一點4 :: UIStack View

移動開發
在 iOS9 中,Apple 引入了 UIStackView,他讓你的應用可以通過簡單的方式,縱向或橫向的疊放你的 views。UIStackView 采用 auto layout 的方式來管理他的子視圖的位置和尺寸。讓你更簡單的構建自適應的 UI。

在 iOS9 中,Apple 引入了 UIStackView,他讓你的應用可以通過簡單的方式,縱向或橫向的疊放你的 views。UIStackView 采用 auto layout 的方式來管理他的子視圖的位置和尺寸。讓你更簡單的構建自適應的 UI。

如果在 iOS9 之前,你想要創建類似 UIStackView 為你提供的這種布局,你需要構建大量的 constraints。你需要編輯許多諸如邊距、高度、x/y 軸的位置,還有它們的依賴關系等。

UIStackView 把這些全部幫你做了。甚至在你添加或者移除某些 view 時,還提供了平滑的動畫。當 view 狀態改變時,他會自動的改變 layout 的屬性值。

使用 UIStackView

現在我們通過創建一個例子來說明怎么使用 UIStackView,最終的代碼放在了Github,你可以下載來研究.我們要創建一個簡單的示范,演示 UIStackView 是怎么工作的?這個頁面底部有2個segmented controls,用來控制 UIStackView 的對齊和分布的屬性。

result

上面的圖片就是我們要創建的示例。如你所見,我們顯示了4個朋友的圖片,還有2個 segmented controls 在下面。這些 UI 使用了auto layout 布局,可以適配多種尺寸。

一會兒的制作過程,會讓你感到驚喜,我們僅僅手動的添加了4個 layout positioning constraints。所有在這個UIStackView中的view都由它自動控制位置。我們一共有4個 UIStackView, 只有第一個我們需要設置一下他的 constraints。這是我們頁面中 stackview 所在的位置。

constraints

當你從 Interface Builder 中拖拽了一個 vertical stack view 到頁面上后,你可以打開它的 constraint 面板,像上圖一樣編輯它的屬性。這會把這個主 stack view 放在頁面的中央,正確的位置上。

從 Interface Builder 中拖拽3個 horizontal stack view 到剛才創建好的 UIStackView 中。在最上面的 stack view,包含四個 UIImageView ,每個 imageView 中展示一個我們的朋友的照片。你拖拽四個 UIImageView 到 stack view 中就可以了。每個圖片的大小尺寸都是不一樣的。為了避免變形,我們給 imageView 的 contentMode 設置為 Aspect Fit。這意味著,不去管圖片的尺寸,圖片總會以正確的比例展示在 imageView 中。

你可能注意到了,在最終的 demo 中,每個 imageView 之間有個間隔,這是因為設置了 stackView的 spacing 屬性為5的原因。在 interface builder 的 attributes inspector 面板可以設置 spacing 的值,同時還可以設置 alignment 和 distribution 的屬性。這里我們缺省的設置為 Fill。因為一會兒我們會通過選擇 segment 來改變它的值。

另外兩個 stackView,同樣是 horizontal stack view。非常簡單,每個 stack view 中包含一個 label 和一個 segmented control。設置 segmented control為下面的內容。

Distribution

 Fill

 Fill Equally

Fill Proportionally

Equal Spacing

Equal Centering

Alignment

 Fill

Top

Center

Bottom

我們一會兒就能看到,這些屬性是如何影響布局的。很多時候,他們的排列方式依賴 contentSize的值。好在,我們這個例子非常簡單,image 的大小就是照片的實際大小。

現在我們的 UI 都創建好了。我們需要給 segment 設置選中后的動作。首先把最上面的 stack view 拖拽 outlet 到 viewController 中,命名為 peopleStackView。然后分別拖拽一個 action 給segmented control。在 action 中對 peopleStackView 的 alignment 和 distribution 屬性進行調節,對齊和排列方式由用戶決定。

code

你可以看到,我給每個動作加了一個動畫的效果,但這不是必須的。如果你移除動畫效果,對齊和排列的方式依然會改變。好現在運行一下程序吧。

你可以看到視頻中的結果,點擊打開視頻

嘗試著使用不同的排列組合,看一下會是什么結果。它會讓你知道UIStackView時多么強大,在不同尺寸的設備上開發用戶界面有多方便。

為現有的view,添加UIStackView

如果你想為你現在已經做好的 view 添加 UIStackView,也很簡單。先移除掉你的 view 上的constraint,然后選中他們,點擊一下 interface builder 的底部右手邊,第一個按鈕。(就是原來你給 view 添加 constraint 的那些按鈕,左邊多了一個)。這會立刻把你選中的view,全部放入一個 UIStackView 中。

ibSupport

這會把你原來的布局方式轉為stack view的布局方式,由stack view來控制布局。

延伸閱讀

想要了解更多關于Xcode7中 UIStackView的內容,推薦閱讀 WWDC 2015 的 session 218 Mysteries of Auto Layout, Part 1.在視頻前15分鐘里,Jason Yao 介紹了 UIStackView,并且現場制作了一個Demo演示如何操作的。

責任編輯:倪明
相關推薦

2015-07-27 09:04:33

ios9

2015-08-07 11:07:21

IOS9code covera每天積累一點

2015-07-21 16:43:13

IOSUI

2015-09-23 10:30:44

iOS 9UIStack Vie

2015-07-17 11:12:43

IOS搜索API

2021-06-02 18:46:13

監控日志Prometheus

2011-03-15 10:41:05

內部類

2015-10-16 14:27:29

iOS9collectionV特性

2015-07-16 12:59:19

IOS9UIDynamics

2015-07-02 17:32:28

iOS 9蘋果

2015-08-20 09:00:23

ios9api

2015-08-24 09:24:21

ios學習contacts fr

2015-09-25 09:44:24

ios9MapkitTrans

2015-09-16 09:55:12

ios9學習UIKit Dynam

2016-03-18 11:19:57

ios9replaykit入門

2019-04-16 15:05:59

ServerlessIT基礎局域網

2015-08-31 11:10:52

ios9內容攔截器

2015-09-09 15:51:54

2018-06-21 07:22:23

iOS 12蘋果iPhone

2015-11-11 10:17:15

ios9聯系人框架干貨
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人在线观看免费观看 | 在线午夜| 亚洲欧美日韩一区 | 国产一二三区电影 | 午夜资源| 欧美久久一级 | 婷婷午夜天 | 久久久久久久久国产精品 | 日韩在线 | 毛片久久久 | www久久国产 | av中文在线 | 人人鲁人人莫人人爱精品 | 91视频久久 | 91免费视频| 黄色网址在线免费观看 | 不卡一区二区三区四区 | 欧美成人激情 | 亚洲精品一区二区三区四区高清 | 成人av电影免费在线观看 | 日韩精品成人网 | 亚洲一区国产 | 亚洲精品一区二区三区 | 91精品国产综合久久小仙女图片 | 日韩三区在线观看 | 亚洲欧美激情国产综合久久久 | 在线精品一区二区 | 国产免费一区二区三区 | 国产成人精品综合 | 中文字幕一区在线观看视频 | 成人国内精品久久久久一区 | 欧美一区免费 | 国产毛片久久久久久久久春天 | 国产在线播放av | 天天干天天操天天看 | 国产高清一区二区三区 | 精品国产乱码久久久久久丨区2区 | 国产片侵犯亲女视频播放 | h片在线免费观看 | 国产成人久久av免费高清密臂 | 一区视频在线免费观看 |