Jiaolong's Blog Jiaolong's Blog
首页
分类
归档
Wiki
摘录
导航
关于

Jiaolong

Solo Developer
首页
分类
归档
Wiki
摘录
导航
关于
  • 基础

    • 关于SwiftUI
  • 进阶

    • 基本类型转换
    • 保存图片到本地
    • 调用自带分享功能
    • 生成导出CSV文件
    • 隐藏状态栏
    • 测试代码执行时间
    • 异步进程
    • 地区价格
    • app内获取版本号
  • Swift

    • 基本数据类型
    • Array
    • Date
  • custom

    • MyToggleStyle
  • __SwiftUI
  • custom
Jiaolong
2022-09-07

MyToggleStyle

struct MyToggleStyle:ToggleStyle {
    let width: CGFloat = 50
    let height:CGFloat = 30
    var onColor:Color  = .green
    var offColor:Color = .init(UIColor.systemGray5)
    var isAnimation = true

    func makeBody(configuration: Configuration) -> some View {
        HStack {
            configuration.label
            Spacer()
            ZStack(alignment: configuration.isOn ? .trailing : .leading) {
                Spacer()
                RoundedRectangle(cornerRadius: width/2.0)
                    .frame(width: width, height: height)
                    .foregroundColor(configuration.isOn ? onColor : offColor)

                RoundedRectangle(cornerRadius: (height-4)/2.0)
                    .frame(width: height-4 , height: height-4)
                    .padding(2)
                    .foregroundColor(.white)
                    .animation(isAnimation ? .easeIn(duration: 0.15) : nil)
                    .onTapGesture {
                        configuration.$isOn.wrappedValue.toggle()
                    }
            }
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Last updated: 2022/12/08, 06:27:06

← Date

Copyright © 2022-2023 | Jiaolong Wang
  • 跟随系统
  • 浅色模式
  • 深色模式