iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
Mobile Development

SwiftUI快速入門30天系列 第 14

Day14 - Toggle 和 Slider,使用開關和滑動條

  • 分享至 

  • xImage
  •  

在 SwiftUI 中,ToggleSlider 是常用的 UI 控件,適合用於簡單的開關和調整數值的功能。以下是一個簡單的教學,展示如何使用這些控件。

使用 Toggle

Toggle 是一個開關控件,通常用於布林值的開啟或關閉。在 SwiftUI 中,你可以通過綁定一個布林變數來使用它:

@State private var isOn: Bool = false

var body: some View {
    Toggle("開關", isOn: $isOn)
        .padding()
}

在這段程式碼中,$isOn 是對 @State 屬性包裝的變數進行雙向綁定,確保 Toggle 的狀態與 isOn 的值同步。

使用 Slider

Slider 控件允許用戶調整範圍內的數值。這通常與一個浮點數綁定在一起:

@State private var sliderValue: Double = 0.5

var body: some View {
    VStack {
        Slider(value: $sliderValue, in: 0...1)
            .padding()
        Text("滑動條值:\(sliderValue)")
    }
}

這裡的 Slider 控件將 sliderValue 的值設置在 0 到 1 的範圍內。用戶調整滑動條時,sliderValue 的值會即時更新,並在 Text 中顯示。

結合 ToggleSlider

你也可以將 ToggleSlider 結合使用,例如在打開 Toggle 時啟用 Slider

@State private var isOn: Bool = false
@State private var sliderValue: Double = 0.5

var body: some View {
    VStack {
        Toggle("啟用滑動條", isOn: $isOn)
        Slider(value: $sliderValue, in: 0...1)
            .disabled(!isOn)
            .padding()
    }
}

這樣用戶必須先打開 Toggle,才能使用滑動條調整數值。

這就是 ToggleSlider 的基本用法,它們讓 SwiftUI 的界面設計更加直觀和靈活。


下面是一個綜合範例,展示了如何在 SwiftUI 中使用 ToggleSlider 控件,並包含 Preview 來即時預覽視圖的效果。

import SwiftUI

struct ToggleSliderView: View {
    @State private var isOn: Bool = false
    @State private var sliderValue: Double = 0.5

    var body: some View {
        VStack {
            Toggle("啟用滑動條", isOn: $isOn)
                .padding()

            Slider(value: $sliderValue, in: 0...1)
                .disabled(!isOn)
                .padding()

            Text("滑動條值:\(sliderValue)")
                .padding()
        }
        .padding()
    }
}

struct ToggleSliderView_Previews: PreviewProvider {
    static var previews: some View {
        ToggleSliderView()
    }
}

解說:

  1. ToggleSliderView 結構體:定義了一個 SwiftUI 視圖,其中包含 ToggleSlider 控件。
  2. @State 屬性
    • isOn 用於控制 Toggle 的狀態。
    • sliderValue 用於儲存和顯示滑動條的當前值。
  3. Toggle 控件:當開啟時,Slider 控件將被啟用,否則禁用。
  4. Slider 控件:綁定到 sliderValue 並設定範圍為 0...1
  5. Text 控件:動態顯示滑動條的當前值。
  6. ToggleSliderView_Previews 結構體:實現 PreviewProvider 協議,允許在 SwiftUI Preview 中即時查看設計效果。

https://ithelp.ithome.com.tw/upload/images/20240828/201121009f11OpyTyL.png


上一篇
Day13 - DatePicker 和 Stepper 元件使用
下一篇
Day15 - Color 和 Font,使用顏色和字體樣式
系列文
SwiftUI快速入門30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言