SwiftUI 库,用于简单弹出视图的实现

弹出

SwiftUI 简单弹出视图实现:

drawing

安装

可以使用 Swift 包管理器来安装 PopUp 库。

使用软件包 URL 来搜索 PopUp 软件包:https://github.com/maxgribov/PopUp

有关如何集成软件包依赖项,请参阅将软件包依赖项添加到您的应用程序文档。

用法

显示

您可以使用View 修饰符 popUp 轻松显示弹出窗口。这与显示工作表非常相似:

struct CustomAlertModel: Identifiable {
    var id: UUID = UUID()
    let title: String
    let message: String
}

struct ContentView: View {
    @State var customAlert: CustomAlertModel?
    var body: some View {
        
        Button("Show custom alert") {
            customAlert = CustomAlertModel(
                title: "Pop Up",
                message: "Some message here..."
            )
        }
        .popUp(item: $customAlert) { viewModel in
            CustomAlert(viewModel: viewModel)
        }
    }
}

struct CustomAlert: View {
    let viewModel: CustomAlertModel
    var body: some View {
        VStack {
            Text(viewModel.title)
                .font(.title)
            Text(viewModel.message)
        }
        .padding(40)
        .background(
            RoundedRectangle(cornerRadius: 30)
                .foregroundStyle(.white)
        )
    }
}

自定义

您可以使用一些方法来自定义弹出窗口的外观和行为:

示例:

struct ContentView: View {
    @State var customAlert: CustomAlertModel?
    var body: some View {
        
        Group {
            // ...
        }
        .popUp(item: $customAlert) { viewModel in
            CustomAlert(viewModel: viewModel)
        }
        .popUpBackgroundMaterial(.ultraThin)
    }
}

注释

例如,PopUp 没有任何背景或内容样式(比如系统警报视图)。您必须自己实现弹出窗口的外观。

这不是模式视图(例如工作表)。它无法覆盖其上方的视图。

可以打开多个弹出窗口,一个在另一个之上。没有像工作表那样的限制。

系统要求

Swift 5.9

  • iOS 15+
  • macOS 12+

许可

此项目采用 MIT 许可证授权