官术网_书友最值得收藏!

2.1 視圖、視圖修飾符、布局方式

在創建SwiftUI項目之前,本節先介紹SwiftUI項目模板的代碼結構。

一款應用的基礎創建過程是先基于App協議創建一個應用,然后基于Scene協議創建視圖層級結構的容器,最后在View中搭建具體的UI。項目模板的代碼結構如圖2-1所示。

圖2-1 項目模板的代碼結構

在ContentView視圖部分,代碼結構為創建一個遵循View協議的結構體,并且聲明一個遵循View協議的、具備body屬性的視圖容器,以便顯示視圖上的內容。

在圖2-1展示的示例代碼中,ContentView可以當作一個界面的框架,用于定義當前的界面。body屬性的視圖容器可以是ContentView定義的界面中顯示的內容的外層容器,body內部的元素則是界面中真實顯示的內容。接下來介紹body中的代碼,ContentView代碼塊如圖2-2所示。

圖2-2 ContentView代碼塊

在ContentView代碼塊中,可以看到有兩個視圖,分別是Image視圖和Text視圖,這是SwiftUI提供的封裝好的視圖,方便開發者快速創建圖片和文本。

Image視圖、Text視圖和其他內置的視圖,在SwiftUI框架中都被稱為視圖,如圖2-3所示。SwiftUI可以將所有用于顯示的對象元素都當作視圖來處理。

圖2-3 視圖

在SwiftUI中,視圖修飾符(Modifiers)可以對不同視圖進行修飾,例如調整圖片大小、文本大小、文本顏色等。

在上述代碼中,修飾Image視圖的imageScale(圖片縮放)修飾符可以將圖片視圖縮放至默認大小,foregroundColor(前景色)修飾符可以修改圖片視圖顯示的圖標的前景色,最外層的padding(邊距)修飾符可以將整個視圖四周進行留白處理。視圖修飾符如圖2-4所示。

圖2-4 視圖修飾符

當body屬性的視圖容器中存在多個視圖時,就需要使用布局方式(Layout)對界面中視圖的布局進行排列。VStack是一種視圖,與其他視圖不同的是,VStack也是一種布局方式,可以將內部的視圖按照垂直方向進行排布。布局方式如圖2-5所示。

圖2-5 布局方式

也可以直接修改布局方式,下面將VStack修改為HStack,HStack的效果如圖2-6所示。

圖2-6 HStack的效果

在這里,可以注意到一個細節,當容器視圖中存在多個視圖時,視圖會嚴格按照代碼的先后順序排布。如果是垂直布局,那么視圖按照代碼的先后順序從上到下排布;如果是橫向布局,那么按照代碼的先后順序從左到右排布。

主站蜘蛛池模板: 滦平县| 丹凤县| 鲁山县| 邵东县| 台北市| 克山县| 惠东县| 壶关县| 京山县| 浠水县| 桦南县| 枞阳县| 丹寨县| 潼关县| 会理县| 澄江县| 旺苍县| 天津市| 宁夏| 平江县| 东乡县| 西盟| 西平县| 贵溪市| 贺兰县| 大悟县| 子洲县| 仁化县| 平顺县| 华蓥市| 连南| 鹤峰县| 济源市| 宜川县| 喀喇沁旗| 平安县| 南靖县| 双峰县| 丰原市| 西盟| 巴林左旗|