引子
各位 iOS 足球體育健兒們,且聽我一言!想當年在《少林足球》里,阿星一句“做人如果沒夢想,那跟咸魚有什么分別啊?”點燃了多少人的江湖夢。
如今在 SwiftUI 江湖里,Apple 于 WWDC 25 推出的 Liquid Glass 設計語言,就像那本失傳已久的足球訓練秘籍——輕輕一抖,各位寶子們的界面就能從“街邊攤”秒變“五星酒店”,通透得讓用戶直呼“好嘢!”。
在本堂足球特訓課中,您將學到如下內容:
- 引子
- 1. 玻璃效果的“內功心法”:不只是塊透明玻璃哦
- 2. 玻璃絕招:regular 一招致命
- 3. 炫彩大招 tint:讓玻璃更“透光”
- 4. 互動秘籍 interactive():讓玻璃“有反應”
- 5. 形狀自由換:圓形、方形任你挑
- 訓練結束:總結
前陣子咱們聊過給標簽欄和工具欄“貼玻璃膜”的功夫,今天就再來深扒這門絕學的進階招式:給自定義視圖穿上“玻璃衣”。保證讓小伙伴們的 UI 效果,比大師兄的鐵頭功還硬氣,比阿梅的太極推手還順滑!
那還等什么呢?Let’s do it!!!😉
1. 玻璃效果的“內功心法”:不只是塊透明玻璃哦
要說這 glassEffect 修飾符,可絕非“貼塊透明塑料布”那么簡單。
它就像身懷內功的高手,能和背后的視圖“眉目傳情”——背后是紅花,它就帶點胭脂氣;背后是綠葉,它就沾點青黛色。
更絕的是,它還能根據背后內容的明暗,自動切換視圖的配色方案,從亮色到暗色,比星爺在電影里切換表情還靈活自如!
先來看段入門級代碼,感受下這“內功”的威力:
import SwiftUIstruct ContentView: View {var body: some View {NavigationStack {ScrollView {// 下面這些彩色塊就像背景里的“群眾演員”,負責襯托玻璃效果Color.red.frame(height: 300)Color.yellow.frame(height: 300)Color.green.frame(height: 300)Color.black.frame(height: 300)Color.orange.frame(height: 300)Color.blue.frame(height: 300)Color.brown.frame(height: 300)}// 在底部安全區“安插”一個帶玻璃效果的視圖,像站在前臺的主角.safeAreaInset(edge: .bottom) {Text("Hello, World!").font(.largeTitle.weight(.black)).padding(.horizontal).foregroundStyle(.blue).padding().glassEffect() // 就這一句,直接給文字“穿上玻璃衣”,是不是so easy?.padding()}.ignoresSafeArea()}}
}
瞧見沒?只需給視圖加個 .glassEffect(),SwiftUI 就像貼心的場務,把所有“玻璃效果”的細節都給你安排得明明白白。
但這只是皮毛,真正的足球高手,還得會玩花樣!
2. 玻璃絕招:regular 一招致命
就像少林功夫有七十二絕技,這玻璃效果也有幾招壓箱底的功夫,分別是 regular(常規款)、tint(炫彩款)和 interactive(激情款)。它們都是 Glass 類型的“預制招式”,各有各的妙用。
先說說這 identity 招,堪稱“開關神器”。想讓玻璃效果時有時無?用它準沒錯,比阿星關掉水龍頭還利索。
看個例子:
struct ContentView: View {@State private var isEnabled = true // 控制玻璃效果的“開關”,像個盡職盡責的裁判var body: some View {NavigationStack {ScrollView {// 下面這些彩色塊就像背景里的“群眾演員”,負責襯托玻璃效果Color.red.frame(height: 300)Color.yellow.frame(height: 300)Color.green.frame(height: 300)Color.black.frame(height: 300)Color.orange.frame(height: 300)Color.blue.frame(height: 300)Color.brown.frame(height: 300)}// 在底部安全區“安插”一個帶玻璃效果的視圖,像站在前臺的主角.safeAreaInset(edge: .bottom) {Text("Hello, World!").font(.largeTitle.weight(.black)).padding(.horizontal).foregroundStyle(.blue).padding()// 條件判斷:打開時用 regular 招,切換自如.glassEffect(.regular, isEnabled: isEnabled).padding()}.navigationTitle("自定義玻璃外衣").toolbar {// 加個開關按鈕,讓用戶自己掌控“玻璃效果”的有無,貼心到家Toggle("玻璃效果", isOn: $isEnabled)}.ignoresSafeArea()}}
}
現在,我們可以隨心所欲的開關”玻璃外衣“了,就問寶子們贊不贊吧:
3. 炫彩大招 tint:讓玻璃更“透光”
如果說 regular 是“標準套餐”,那 tint 就是“炫彩版”—— 更加明艷動人,就像剛擦過的玻璃,連蒼蠅站在上面都得打滑!更妙的是,它能加“ tint(色調)”,給玻璃染上點“個性色彩”,就像給阿星的球鞋加個酷炫配色。
且看代碼:
.glassEffect(.regular.tint(.red.opacity(0.77)), isEnabled: isEnabled)
這 tint 就像給玻璃“上妝”,紅的、綠的、藍的… 想啥色就啥色,比阿梅的胭脂盒還豐富多彩呢!
4. 互動秘籍 interactive():讓玻璃“有反應”
光好看還不夠,得“有互動”才算真功夫!Glass 類型里的 interactive() 方法,就是讓玻璃效果“活”起來的關鍵。
加了它,玻璃不僅能“倒映”背后的內容,還能對點擊、拖動等手勢“敏感”起來,像個反應敏捷的守門員,球來必接!
下面來一段代碼演示:
struct CustomView: View {var body: some View {ScrollView {// 背景依舊“忙忙碌碌”,襯托互動效果Color.red.frame(height: 300)Color.yellow.frame(height: 300)Color.green.frame(height: 300)Color.black.frame(height: 300)Color.orange.frame(height: 300)Color.blue.frame(height: 300)Color.brown.frame(height: 300)}.safeAreaInset(edge: .bottom) {Text("Hello, World!").padding()// 加了 interactive(),玻璃就從“靜態畫”變成“互動高手”.glassEffect(.regular.tint(.red.opacity(0.77)).interactive(), isEnabled: isEnabled)}}
}
有了它,你的玻璃視圖就像少林隊的球員,既能“秀顏值”,又能“拼實力”,用戶體驗直接上了三個臺階!棒棒噠💯
5. 形狀自由換:圓形、方形任你挑
默認的玻璃效果是“隨形就勢”的,但如果你想玩點花樣,比如弄個圓形玻璃、圓角矩形玻璃,SwiftUI 也能滿足你。
就像電影里阿星把足球踢成各種弧線,玻璃的形狀也能“隨心所欲”。
最后看這個例子吧:
struct CustomView: View {var body: some View {ScrollView {// 背景色繼續“當綠葉”Color.red.frame(height: 300)Color.yellow.frame(height: 300)Color.green.frame(height: 300)Color.black.frame(height: 300)Color.orange.frame(height: 300)Color.blue.frame(height: 300)Color.brown.frame(height: 300)}.safeAreaInset(edge: .bottom) {Text("Hello, World!").padding()// 第二個參數指定形狀,這里用 .circle 讓玻璃變成圓形,是不是很酷炫?.glassEffect(.regular.tint(.red.opacity(0.77)).interactive(), in: .circle, isEnabled: isEnabled)}}
}
除了圓形,你還能換成 .rectangle(矩形)、.capsule(膠囊形),甚至自定義形狀,想象力有多大,玻璃就能多“奇葩”(褒義的哈)!
訓練結束:總結
最后說句掏心窩子的話:在 SwiftUI 里給自定義視圖加玻璃效果,就像給少林足球加個“旋風腿”——簡單幾行代碼,效果卻能“驚為天人”。
這 Liquid Glass 設計語言,看似復雜,實則“入門容易精通難”,但只要你肯多練,保準能讓你的 App 界面“帥到沒朋友”!
記住,搞 UI 設計就像踢足球,不追求花里胡哨,只追求“用戶說好”。下次再有人問你:“你的 App 界面怎么這么好看?” 你就可以瀟灑地說:“其實呢,我只是懂點‘玻璃功夫’而已!”
WWDC 25 更多 App 界面中的精妙改動,請各位寶子們移步如下鏈接觀賞精彩的內容:
- SwiftUI 7 新 WebView:金蛇出洞,網頁江湖換新天
- WWDC 25 風云再起:SwiftUI 7 Charts 心法從 2D 到 3D 的華麗蛻變
- SwiftUI 7(iOS 26 / iPadOS 26)中玻璃化標簽頁的全新玩法
- SwiftUI 7 江湖新風:WWDC25 揭曉神秘武林志
- SwiftUI 7(iOS 26)中玻璃化工具欄的藝術
那么,各位微禿寶子運動健將們,咱們下次再聊更多的 SwiftUI 絕學,不見不散!😎