日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

SwiftUI 使用 visualEffect 視圖修飾符

來源: 責(zé)編: 時(shí)間:2024-01-02 09:31:29 226觀看
導(dǎo)讀前言在 WWDC 23 中,SwiftUI 引入了一個(gè)名為 visualEffect 的新視圖修飾符。此修飾符允許我們通過訪問特定視圖的布局信息來附加一組可動(dòng)畫化的視覺效果。下面我們將學(xué)習(xí)如何在 SwiftUI 中使用新的 visualEffect 視圖修

前言

在 WWDC 23 中,SwiftUI 引入了一個(gè)名為 visualEffect 的新視圖修飾符。此修飾符允許我們通過訪問特定視圖的布局信息來附加一組可動(dòng)畫化的視覺效果。下面我們將學(xué)習(xí)如何在 SwiftUI 中使用新的 visualEffect 視圖修飾符。uAc28資訊網(wǎng)——每日最新資訊28at.com

介紹 visualEffect

讓我們從使用 visualEffect 視圖修飾符的最簡(jiǎn)單示例開始。uAc28資訊網(wǎng)——每日最新資訊28at.com

struct ContentView: View {    var body: some View {        Text("Hello World!")            .visualEffect { initial, geometry in                initial.offset(geometry.size)            }    }}

正如你在上面的示例中所看到的,我們定義了一個(gè)文本視圖并附加了 visualEffect 視圖修飾符。每當(dāng)你附加 visualEffect 視圖修飾符時(shí),你應(yīng)該指定效果閉包。這是你應(yīng)用所有需要的效果的地方。uAc28資訊網(wǎng)——每日最新資訊28at.com

效果閉包為你提供了兩個(gè)參數(shù)。第一個(gè)是附加到視圖的效果集合的初始狀態(tài)。它是 EmptyVisualEffect 類型的實(shí)例。我們使用此實(shí)例來附加額外的效果。第二個(gè)參數(shù)是包含視圖的所有布局信息的 GeometryProxy 類型的實(shí)例,比如 frame、安全區(qū)域等。uAc28資訊網(wǎng)——每日最新資訊28at.com

什么是視覺效果?

視覺效果是可以改變視圖的視覺外觀但不影響其布局的任何東西。在 SwiftUI 框架的先前版本中,我們有視圖修飾符,如縮放、偏移、模糊、對(duì)比度、飽和度、不透明度、旋轉(zhuǎn)等。它們?nèi)慷际且曈X效果,并且現(xiàn)在符合 VisualEffect 協(xié)議。你可以在 visualEffect 閉包中使用其中任何一個(gè)。uAc28資訊網(wǎng)——每日最新資訊28at.com

struct ContentView: View {        var body: some View {        Text("Hello World!")            .visualEffect { initial, geometry in                initial                    .blur(radius: 8)                    .opacity(0.9)                    .scaleEffect(.init(width: 2, height: 2))            }    }}

像 frame 和 padding 這樣的東西不是視覺效果,你不能在 visualEffect 閉包中使用它們,因?yàn)樗鼈冃薷牧艘晥D層次結(jié)構(gòu)的布局。uAc28資訊網(wǎng)——每日最新資訊28at.com

visualEffect 修飾符視覺效果

visualEffect 視圖修飾符是完成舊事物的新方法。我們可以使用舊視圖修飾符修改視圖的不透明度和偏移。如果你不需要布局信息,你可以繼續(xù)使用它們。新方法的唯一區(qū)別是我們通過從 GeometryProxy 提供的布局信息計(jì)算視圖的視覺效果的方式來限定視圖的視覺效果。uAc28資訊網(wǎng)——每日最新資訊28at.com

visualEffect 視圖修飾符支持可動(dòng)畫化的值。因此,你可以繼續(xù)使用它根據(jù)視圖在視圖層次結(jié)構(gòu)中的框架和邊界來動(dòng)畫化視圖的視覺外觀。uAc28資訊網(wǎng)——每日最新資訊28at.com

struct ContentView: View {    @State private var isScaled = false        var body: some View {        VStack {            Button("Scale") {                isScaled.toggle()            }                        Text("Hello World!")                .visualEffect { initial, geometry in                    initial.scaleEffect(                        CGSize(                            width: isScaled ? 2 : 1,                            height: isScaled ? 2 : 1                        )                    )                }                .animation(.smooth, value: isScaled)        }    }}

完整的代碼

import SwiftUIstruct ContentView: View {    var body: some View {        Text("Hello World!")            .visualEffect { initial, geometry in                initial.offset(geometry.size)            }    }}struct ContentViewWithEffects: View {    var body: some View {        Text("Hello World!")            .visualEffect { initial, geometry in                initial                    .blur(radius: 8)                    .opacity(0.9)                    .scaleEffect(.init(width: 2, height: 2))            }    }}struct ContentViewWithAnimation: View {    @State private var isScaled = false        var body: some View {        VStack {            Button("Scale") {                isScaled.toggle()            }                        Text("Hello World!")                .visualEffect { initial, geometry in                    initial.scaleEffect(                        CGSize(                            width: isScaled ? 2 : 1,                            height: isScaled ? 2 : 1                        )                    )                }                .animation(.smooth, value: isScaled)        }    }}struct ContentView_Previews: PreviewProvider {    static var previews: some View {        ContentView()        ContentViewWithEffects()        ContentViewWithAnimation()    }}

將上述代碼放入 Swift 文件中,然后在 Xcode 中打開并運(yùn)行,選擇合適的模擬器。請(qǐng)注意,由于視覺效果和動(dòng)畫效果,最好在模擬器上查看效果。uAc28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

本文章介紹了在 SwiftUI 中引入的新視圖修飾符 visualEffect。該修飾符允許我們通過訪問特定視圖的布局信息來附加一組可動(dòng)畫的視覺效果。給出了一些使用 visualEffect 的簡(jiǎn)單示例,包括如何使用效果閉包以及如何應(yīng)用一些常見的視覺效果(例如模糊、透明度、縮放)。uAc28資訊網(wǎng)——每日最新資訊28at.com

此外,還提到了 GeometryProxy 類型的使用,以及 visualEffect 對(duì)可動(dòng)畫值的支持,使得可以根據(jù)視圖的幀和邊界來動(dòng)態(tài)調(diào)整視覺外觀。uAc28資訊網(wǎng)——每日最新資訊28at.com

最后,指出了 visualEffect 修飾符在向后兼容性方面的注意事項(xiàng),并建議在不需要布局信息的情況下繼續(xù)使用傳統(tǒng)的視圖修飾符。uAc28資訊網(wǎng)——每日最新資訊28at.com

uAc28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-55248-0.htmlSwiftUI 使用 visualEffect 視圖修飾符

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: SwiftUI 使用 visualEffect 視圖修飾符

下一篇: 深入了解Java 8 新特性:Optional類的實(shí)踐應(yīng)用

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 對(duì)標(biāo)蘋果的靈動(dòng)島 華為帶來實(shí)況窗功能

    繼蘋果的靈動(dòng)島之后,華為也在今天正式推出了“實(shí)況窗”功能。據(jù)今天鴻蒙OS 4.0的現(xiàn)場(chǎng)演示顯示,華為的實(shí)況窗可以更高效的展現(xiàn)出實(shí)時(shí)通知,比如鎖屏上就能看到外賣、打車、銀行
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個(gè)線程之間通過某種機(jī)制進(jìn)行協(xié)調(diào)和交互,例如,線程等待和通知機(jī)制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實(shí)現(xiàn)手段有以下幾種方式:Object 類下
  • 如何使用JavaScript創(chuàng)建一只圖像放大鏡?

    譯者 | 布加迪審校 | 重樓如果您曾經(jīng)瀏覽過購物網(wǎng)站,可能遇到過圖像放大功能。它可以讓您放大圖像的特定區(qū)域,以便瀏覽。結(jié)合這個(gè)小小的重要功能可以大大改善您網(wǎng)站的用戶體驗(yàn)
  • 重估百度丨“晚熟”的百度云,能等到春天嗎?

    ©自象限原創(chuàng)作者|程心排版|王喻可2016年7月13日,百度云計(jì)算戰(zhàn)略發(fā)布會(huì)在北京舉行,宣告著百度智能云的正式啟程。彼時(shí)的會(huì)場(chǎng)座無虛席,甚至排隊(duì)排到了門外,在場(chǎng)的所有人幾乎都
  • 共享單車的故事講到哪了?

    來源丨海克財(cái)經(jīng)與共享充電寶相差不多,共享單車已很久沒有被國內(nèi)熱點(diǎn)新聞關(guān)照到了。除了一再漲價(jià)和用戶直呼用不起了。近日多家媒體再發(fā)報(bào)道稱,成都、天津、鄭州等地多個(gè)共享單
  • 梁柱接棒兩年,騰訊音樂闖出新路子

    文丨田靜 出品丨牛刀財(cái)經(jīng)(niudaocaijing)7月5日,企鵝FM發(fā)布官方公告稱由于業(yè)務(wù)調(diào)整,將于9月6日正式停止運(yùn)營,這意味著騰訊音樂長音頻業(yè)務(wù)走向消亡。騰訊在長音頻領(lǐng)域還在摸索。為
  • OPPO、vivo、小米等國內(nèi)廠商Q2在印度智能手機(jī)市場(chǎng)份額依舊高達(dá)55%

    7月20日消息,據(jù)外媒報(bào)道,研究機(jī)構(gòu)的報(bào)告顯示,在全球智能手機(jī)出貨量同比仍在下滑的大背景下,印度這一有潛力的市場(chǎng)也未能幸免,出貨量同比也有下滑,多家廠
  • iQOO Neo8 Pro真機(jī)諜照曝光:天璣9200+和V1+旗艦雙芯加持

    去年10月,iQOO推出了iQOO Neo7系列機(jī)型,不僅搭載了天璣9000+,而且是同價(jià)位唯一一款天璣9000+直屏旗艦,一經(jīng)上市便受到了用戶的廣泛關(guān)注。在時(shí)隔半年后,
  • OPPO K11評(píng)測(cè):旗艦級(jí)IMX890加持 2000元檔最強(qiáng)影像手機(jī)

    【Techweb評(píng)測(cè)】中端機(jī)型用戶群體巨大,占了中國目前手機(jī)市場(chǎng)的大頭,一直以來都是各手機(jī)品牌的“必爭(zhēng)之地”,其中OPPO K系列機(jī)型一直以來都以高品質(zhì)、
Top 主站蜘蛛池模板: 宜兴市| 犍为县| 大邑县| 湟源县| 博罗县| 桐柏县| 永清县| 澎湖县| 岢岚县| 银川市| 辉县市| 南陵县| 临夏县| 新野县| 东乌珠穆沁旗| 庄河市| 田东县| 耿马| 新干县| 夹江县| 寻甸| 宝坻区| 萝北县| 武穴市| 丽江市| 汉沽区| 体育| 西安市| 芒康县| 凤翔县| 遂溪县| 仁化县| 泰宁县| 响水县| 新河县| 永顺县| 抚宁县| 富阳市| 塘沽区| 邳州市| 兴业县|