一个 SwiftUI 容器,它呈现两个以可调拆分方式垂直堆叠的视图

VerticalSplit

这个软件包很大程度上受到 Amie iOS 应用程序中的分屏实现的启发。

用法

import VerticalSplit

VerticalSplit(
    topTitle: "Top View",
    bottomTitle: "Bottom View",
    topView: {
        // Top Content
    },
    bottomView: {
        // Bottom Content
    }
)

迷你浮层

当顶部或底部视图以其最小尺寸显示时,添加自定义内容进行显示。

VerticalSplit(
    topTitle: "Top View",
    bottomTitle: "Bottom View",
    topView: {
        // Top Content
    },
    bottomView: {
        // Bottom Content
    },
    topMiniOverlay: {
        // 当顶部视图最小化时显示,而不是顶部内容
    },
    bottomMiniOverlay: {
        // 当底部视图最小化时显示,而不是底部内容
    }
)

分隔槽位绑定

使用绑定控制顶部和底部视图之间的分隔。

@State var currentDetent: SplitDetent.fraction(0.5)

VerticalSplit(
    detent: $currentDetent
    topTitle: "Top View",
    bottomTitle: "Bottom View",
    ...
)

附件

使用 leadingAccessoriestrailingAccessories 修饰符在拖动区域添加按钮。

VerticalSplit(...)
    .leadingAccessories([
        SplitAccessory(systemName: "plus.circle.fill") {
            // Perform action
        },
        SplitAccessory(systemName: "minus.circle.fill") {
            // Perform action
        }
    ])

使用 menuAccessories 修饰符在拖动区域弹出菜单中添加按钮。

VerticalSplit(...)
    .menuAccessories([
        MenuAccessory(title: "Plus", systemName: "plus.circle.fill", color: .green) {
            // Perform action
        },
        MenuAccessory(title: "Minus", systemName: "minus.circle.fill", color: .red) {
            // Perform action
        }
    ])

背景颜色

设置顶部和底部视图容器以及菜单按钮的背景颜色。

VerticalSplit(...)
    .backgroundColor(.gray)

调试

控制是否为调试记录日志。

VerticalSplit(...)
    .debug(true)