📜  活动指示器 swiftui - Swift (1)

📅  最后修改于: 2023-12-03 15:11:05.252000             🧑  作者: Mango

活动指示器 SwiftUI

活动指示器是一种UI元素,用于指示正在进行中的操作。在SwiftUI中,我们可以使用一个简单的视图来显示活动指示器。

创建活动指示器

首先,在需要显示活动指示器的视图中,我们可以使用 @State 属性来跟踪一个布尔值,该值指示是否应该显示活动指示器。然后,我们可以使用 ProgressView 视图来创建活动指示器,并使用 if 语句来根据布尔值显示或隐藏该视图。

@State var isLoading = false

var body: some View {
    VStack {
        if isLoading {
            ProgressView()
        }
        // Your other views here
    }
}
设定样式

我们还可以通过在 ProgressView 视图上使用 .progressViewStyle() 来设置活动指示器的样式。SwiftUI提供了多种可用的样式,例如 CircularProgressViewStyleLinearProgressViewStyleDefaultProgressViewStyle。我们可以根据需要选择相应的样式。

ProgressView()
    .progressViewStyle(CircularProgressViewStyle())
活动指示器颜色

通过在 ProgressView 视图上使用 .accentColor(),我们可以设置活动指示器的颜色。

ProgressView()
    .progressViewStyle(CircularProgressViewStyle())
    .accentColor(.orange)
完整示例
struct ContentView: View {
    @State var isLoading = false
    
    var body: some View {
        NavigationView {
            VStack {
                if isLoading {
                    ProgressView()
                        .progressViewStyle(CircularProgressViewStyle())
                        .accentColor(.orange)
                }
                Button(action: {
                    isLoading.toggle()
                    simulateLoading()
                }) {
                    Text("Toggle Loading")
                }
            }
            .navigationTitle("Activity Indicator")
        }
    }
    
    func simulateLoading() {
        DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
            isLoading.toggle()
        }
    }
}

这是一个完整的示例,其中包括一个视图,该视图在点击按钮时启动和停止活动指示器,并使用 CircularProgressViewStyle 和橙色的 accentColor


以上是关于在SwiftUI中创建活动指示器的简单介绍。使用活动指示器可以显著提升应用程序体验,使您的用户了解正在进行的任务。