日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)IOS教程:配置視圖

概覽

在 SwiftUI 中,你可以將視圖組合成一個(gè)層次結(jié)構(gòu),用它來描述你的 App 用戶界面。視圖修飾符能幫助你自定 App 視圖的外觀和行為。例如,你可以使用修飾符來執(zhí)行以下操作:

10年的常州網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整常州建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“常州網(wǎng)站設(shè)計(jì)”,“常州網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

  • 為視圖添加輔助功能。

  • 調(diào)整視圖的樣式、布局和其他外觀特征。

  • 響應(yīng)拷貝和粘貼等操作。

  • 有條件地呈現(xiàn)模式視圖,例如彈出窗口。

  • 配置支持視圖,例如工具欄。

由于視圖修飾符是帶有 View (英文) 協(xié)議提供的行為的 Swift 方法,因此,你可以將它們應(yīng)用于遵從 View (英文) 協(xié)議的任何類型。這包括 Text (英文)、Image (英文) 和 Button (英文) 等原生視圖以及你定義的視圖。

通過修飾符配置視圖

與其他 Swift 方法一樣,修飾符在實(shí)例上運(yùn)行 (在本例中為某種視圖) 并且可以選擇性地采用輸入?yún)?shù)。例如,你可以應(yīng)用 foregroundColor(_:) (英文) 修飾符來設(shè)置 Text (英文) 視圖的顏色:

 Text("Hello, World!")  .foregroundColor(.red) // Display red text.

修飾符將返回一個(gè)包裝了原始視圖的視圖,并在視圖層次結(jié)構(gòu)中替換它。你可以將上例中的兩行代碼想成是解析為顯示紅色文本的單一視圖。

盡管上述代碼遵循 Swift 的規(guī)則,但剛剛接觸 SwiftUI 的開發(fā)者可能不熟悉此代碼的結(jié)構(gòu)。SwiftUI 使用聲明式方法,也就是說,你在代碼中聲明并配置視圖的位置與視圖在視圖層次結(jié)構(gòu)中的位置對(duì)應(yīng)。有關(guān)更多信息,請(qǐng)參閱“聲明自定視圖”。

鏈?zhǔn)秸{(diào)用修飾符以實(shí)現(xiàn)復(fù)雜效果

你通常通過一個(gè)接一個(gè)地調(diào)用修飾符來以鏈?zhǔn)椒绞秸{(diào)用它們,即每個(gè)修飾符都包裝了上一個(gè)修飾符的結(jié)果。例如,你可以使用 frame(width:height:alignment:) (英文) 修飾符將文本視圖包裝在具有給定寬度的隱形框中,以影響其布局,然后使用 border(_:width:) (英文) 修飾符圍繞該框架繪制一個(gè)輪廓:

 Text("Title")  .frame(width: 100)  .border(Color.gray)

你應(yīng)用修飾符的順序很重要。例如,通過以上代碼得出的 border 會(huì)繪制框架完整寬度的輪廓。

如果在 border 修飾符之后指定 frame 修飾符,則 SwiftUI 僅會(huì)將 border 應(yīng)用于文本視圖,占用的空間絕不會(huì)超過渲染其內(nèi)容所需的空間。

 Text("Title")  .border(Color.gray) // Apply the border first this time.  .frame(width: 100)

將該視圖包裝在一個(gè)具有固定 100 點(diǎn)寬度的隱形框中會(huì)影響復(fù)合視圖的布局,但對(duì) border 沒有影響。

配置子視圖

你可以將 View (英文) 協(xié)議定義的任何視圖修飾符應(yīng)用于任何具體的視圖,即使是在修飾符對(duì)其目標(biāo)視圖沒有直接影響的情況下也是如此。修飾符的影響會(huì)傳播到并未顯式覆蓋修飾符的子視圖。

例如,VStack (英文) 實(shí)例本身的作用僅僅是垂直堆疊其他視圖,它沒有任何要顯示的文本。因此,將一個(gè) font(_:) (英文) 修飾符應(yīng)用于該 stack 不會(huì)對(duì)它產(chǎn)生任何影響。然而,font 修飾符卻會(huì)應(yīng)用于該 stack 的所有子視圖,其中的部分視圖可能會(huì)顯示文本。不過,你可以通過向特定子視圖添加另一個(gè)修飾符來在本地覆蓋該堆疊的修飾符:

 VStack {  Text("Title")  .font(.title) // Override the font of this view.  Text("First body line.")  Text("Second body line.") } .font(.body) // Set a default font for text in the stack.

使用特定于視圖的修飾符

盡管許多視圖類型依賴于標(biāo)準(zhǔn)視圖修飾符來進(jìn)行自定和控制,但某些視圖可以定義特定于該視圖類型的修飾符。此類修飾符僅適用于相應(yīng)類型的視圖。例如,你可以使用 Text (英文) 定義的 bold() (英文) 修飾符,來方便地向視圖的文本添加粗體效果。盡管你可以在任何視圖上使用 font(_:) (英文),因?yàn)樗?View (英文) 協(xié)議的一部分,但你僅能在 Text (英文) 視圖上使用 bold() (英文)。因此,你并不能在容器視圖上使用 bold 修飾符:

 VStack {  Text("Hello, world!") } .bold() // Fails because 'VStack' doesn't have a 'bold' modifier.

此外,在應(yīng)用另一個(gè)通用修飾符后,你也不能在 Text (英文) 視圖上使用它,因?yàn)橥ㄓ眯揎椃麜?huì)返回一個(gè) opaque type (英文)。例如,padding 修飾符的返回值不是 Text (英文),而是一個(gè)無法采用 bold 修飾符的不透明的結(jié)果類型:

 Text("Hello, world!")  .padding()  .bold() // Fails because 'some View' doesn't have a 'bold' modifier.

正確的做法是將 bold 修飾符直接應(yīng)用于 Text (英文) 視圖,然后添加 padding:

 Text("Hello, world!")  .bold() // Succeeds.  .padding()

文章名稱:創(chuàng)新互聯(lián)IOS教程:配置視圖
網(wǎng)站地址:http://www.dlmjj.cn/article/dpjhgdp.html