SwiftUI基础学习日记(七)ColorPicker、ProgressView

539 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天,点击查看活动详情

大家好,我是小黑,一个还没秃头的程序员~~~

今天依然继续swiftUI基础控件中的各种选择器,话不多说,正文开始:

(一)ColorPicker

ColorPicker用于从系统颜色选择器中选择颜色。

颜色选择器是一个可以显示当前选定颜色并允许用户选择新颜色的较大系统颜色选择器。 默认情况下,颜色选择器支持不透明的颜色;要禁用不透明度支持,请将supportsOpacity参数设置为false。在这种模式下,颜色选择器不会显示为用于调整所选颜色的不透明度的控件,并从任何以编程方式设置或从用户系统收藏夹中选择的颜色中去掉不透明度。 你可以通过将ColorPicker嵌入到一个视图层次结构中,并用一个banding变量与控件进行绑定

属性/修饰符说明
label文字标签
selection选择的颜色

代码如下:

 @State private var color=Color(.sRGB,red: 0.98, green: 0.9, blue: 0.2)
  ColorPicker("ColorPicker", selection: self.$color)

(二)ProgressView

ProgressView是可以显示任务完成进度的控件。

属性/修饰符说明
label文字标签
value目前的进度

使用进度控件来显示任务正在朝着完成的方向前进。进度控件可以显示确定类型(完成百分比)和不确定类型(进度或非进度)的进度。 创建一个确定的进度视图,方法是初始化一个ProgressView,绑定到一个指示进度的数值,以及一个表示任务完成情况的总值。默认情况下,进度是0.0,总数是1.0。 下面的例子使用状态属性progress在一个确定的ProgressView中显示进度。进度视图使用默认的总数1.0

@State private var progress = 0.5

VStack {
    ProgressView(value: progress)
    Button("More", action: { progress += 0.05 })
}

要创建一个不确定的进度视图,请使用不带进度值的初始化器:\

var body: some View { ProgressView()}

您可以通过创建符合ProgressViewStyle协议的样式来定制进度视图的外观和交互。要为视图中的所有进度视图实例设置特定的样式,使用progressViewStyle(_:)修饰符。在下面的例子中,一个自定义的样式给封闭的VStack中的所有进度视图添加了一个深蓝色的阴影:

struct ShadowedProgressViews: View {
    var body: some View {
        VStack {
            ProgressView(value: 0.25)
            ProgressView(value: 0.75)
        }
        .progressViewStyle(DarkBlueShadowProgressViewStyle())
    }
}

struct DarkBlueShadowProgressViewStyle: ProgressViewStyle {
    func makeBody(configuration: Configuration) -> some View {
        ProgressView(configuration)
            .shadow(color: Color(red: 0, green: 0, blue: 0.6),
                    radius: 4.0, x: 1.0, y: 2.0)
    }
}

今天的swiftUI学习分享就到这里,刚开始接触学的慢,但是希望可以吸收进去,为了以后的实战做准备,后面我会持续输出iOS开发笔记,感谢大家的阅读!