當然,這裡詳細概述如何在 Swift 中更改 SwiftUI Switch 的大小。
SwiftUI 是 Apple 的框架,旨在利用 Swift 的強大功能在所有 Apple 平台上建立使用者介面。 有時,開發人員可能會遇到需要調整特定 UI 元件(例如開關)大小的情況。 預設情況下,SwiftUI 不允許直接更改 Switch 的大小,但我們可以使用一些解決方法來實現這一點。
讓我們深入探討問題的解決方案。
在 SwiftUI 中建立自訂開關
要調整 SwiftUI 中 Switch 的大小,一種方法是建立自訂 Switch。 這使您可以完全控制 Switch 的外觀和尺寸。
以下是建立自訂開關的程式碼範例:
struct CustomSwitch: View { @Binding var isOn: Bool var body: some View { Button(action: { self.isOn.toggle() }) { Rectangle() .fill(self.isOn ? Color.green : Color.gray) .frame(width: 50, height: 30) .overlay(Circle() .fill(Color.white) .offset(x: self.isOn ? 10 : -10), alignment: self.isOn ? .trailing : .leading) .cornerRadius(15) .animation(.spring()) } } }
了解自訂開關代碼
讓我們分解一下這段程式碼的作用:
- CustomSwitch 結構: 這定義了我們的自訂 SwiftUI 視圖。 它綁定到一個布林值——開關的狀態。
- 按鈕動作: 此 Swift 程式碼區塊指定按下按鈕時的行為。 在這裡,只需切換“isOn”狀態即可。
- 長方形: SwiftUI 矩形結構的實例,定義形狀的屬性。
- 填色: 矩形的顏色取決於“isOn”是 true 還是 false。
- 框架: 這裡的框架修飾符表示自訂開關的寬度和高度。
- 覆蓋: 覆蓋修改器可讓您在現有視圖之上疊加另一個 SwiftUI 視圖 - 這裡是一個用作開關旋鈕的白色圓圈。
- 偏移量: 此處使用偏移修改器根據“isOn”是 true 還是 false 來移動 Circle,從而產生開關正在切換的錯覺。
- 角半徑: 這會將圓角應用於基礎矩形的角。
- 動畫片: 動畫修改器將 spring() 動畫應用於整個按鈕 - 因此當您切換時,它將平滑切換。
結束語
在客製化使用者介面以滿足特定應用程式需求時,能夠自訂 SwiftUI Switch 的大小可能是一個優勢。 我們已經了解了一種透過建立自訂 Switch 來實現此目標的方法。 快樂編碼!
請記住: SwiftUI 非常靈活且可自訂。 請隨意調整上面程式碼中的值和屬性,以更好地滿足您的專案和設計需求。 如果您需要更改任何其他 UI 元件的大小,可以以幾乎相同的方式套用自訂建立方法。