SwiftUI 抽屉

一个 SwiftUI 自底部向上弹出的控制器,类似于地图应用中的效果。拖动以展开或最小化。

目录

对于 Xcode 项目

文件 > Swift Packages > 添加 Package Dependency: https://github.com/maustinstar/swiftui-drawer

对于 Swift Packages

在你的 Package.swift 文件中添加一个依赖项

.package(url: "https://github.com/maustinstar/swiftui-drawer.git", from: "0.1.0"),

基本用法

将你的视图内容嵌入到 ZStack 中,并将 Drawer 作为最后一个元素。heights 参数定义了抽屉的多个停靠高度。

ZStack {

    ScrollView {
        //...
    }
    
    Drawer(heights: [100, 340]) {
        Color.blue
    }.edgesIgnoringSafeArea(.vertical)
}

查看完整的参考指南

示例

一个具有触感反馈的多高度抽屉。

Drawer {
    ZStack {
        
        RoundedRectangle(cornerRadius: 12)
            .foregroundColor(.white)
            .shadow(radius: 100)
        
        VStack(alignment: .center) {
            Spacer().frame(height: 4.0)
            RoundedRectangle(cornerRadius: 3.0)
                .foregroundColor(.gray)
                .frame(width: 30.0, height: 6.0)
            Spacer()
        }
    }
}.edgesIgnoringSafeArea(.vertical)
.rest(at: .constant([100, 340, UIScreen.main.bounds.height - 40]))
.impact(.light)

查看更多示例

🚀 正在寻找更多有趣的 SwiftUI 包吗?

使用这些包将你的 SwiftUI 应用提升到新的水平!

鸣谢