PopUp:简单弹出视图实现





项目名称:PopUp

项目简介

PopUp是一个开源的SwiftUI库,它提供了一个简单实现的弹出视图(pop up view)。这个库允许开发者在他们的iOS和macOS应用中轻松地展示自定义的弹出视图,同时支持高度定制化,包括弹出和消失的动画、背景材质以及对背景点击的响应。

功能特点

  • 展示弹出视图:使用View修饰符popUp来展示弹出视图,类似于展示一个sheet。

  • 定制化:提供多种方法来定制弹出视图的外观和行为,包括背景材质、展示动画、消失动画以及背景点击响应。

  • 无样式限制:PopUp不提供内置的背景或样式,开发者需要自行实现弹出视图的外观。

使用方法

以下是如何在项目中使用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不提供任何内置的背景或样式,弹出视图的外观需要开发者自行实现。

  • 这不是一个模态视图(如sheet),它不能覆盖其上方的视图。

  • 可以打开多个弹出视图相互叠加,没有像sheet那样的限制。

系统要求

  • Swift 5.9

  • iOS 15+

  • macOS 12+

许可证

本项目在MIT许可证下授权,详见LICENSE文件。

项目地址

项目位于GitHub上,可以通过以下链接访问:PopUp GitHub

或许喜欢

SwiftUIPager:SwiftUI原生组件构建的分页器

SwiftUIPager是一个用SwiftUI构建的分页器组件,支持垂直和水平分页,视图回收,自定义UI和动画效果,适用于iOS和macOS应用。

最近更新 2024-12-10

ShuffleIt:SwiftUI自定义堆叠视图与动画库

ShuffleIt是一个SwiftUI库,提供多种自定义堆叠视图和优雅的洗牌、滑动、滑动行为,适用于iOS、macOS、watchOS和tvOS。

最近更新 2024-12-09

AnimateText:SwiftUI文本动画库支持iOS/macOS

AnimateText是一个用于SwiftUI的文本动画库,支持iOS和macOS平台,允许开发者创建自定义动画效果,增加应用的动态交互体验。

最近更新 2024-12-09

热榜

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1