一个自定义 SwiftUI 视图,为在不同内容屏幕之间导航而提供动画页面控制

AnimatedPageControlView

演示

说明

AnimatedPageControlView 是一个自定义 SwiftUI 视图,它提供一个动画翻页控件,用于在不同内容屏幕(也称为“走马灯”)之间导航。 它的设计旨在通过添加当前页面的视觉吸引力指示器来增强用户体验。

功能

  • 带有平滑过渡的动画翻页指示器。
  • 可自定义的颜色和尺寸。
  • 轻松与 SwiftUI 的 TabView 或任何其他 swiftUI 视图组件集成。

安装

Swift 包管理器

Swift 包管理器 是用于自动分发 Swift 代码的工具,它集成到 swift 编译器中。

设置好 Swift 包后,只需将其添加到 Package.swiftdependencies 值中,便可轻松地将 PageIndicatorControl 添加为依赖项。

dependencies: [
    .package(url: "https://github.com/advantagefse/AnimatedPageControl-SwiftUI.git", .upToNextMajor(from: "1.0.0"))
]

要在项目中使用 AnimatedPageControlView,请按照以下步骤操作:

  1. 在 SwiftUI 视图中,顶部导入 AnimatedPageControl
  2. AnimatedPageControlView 用作视图层次结构的一部分,提供必要的参数。

示例用法:

import SwiftUI
import AnimatedPageControlView

struct ContentView: View {

    @StateObject var viewModel = AnimatedPageControlViewModel()
    @State private var selection: Int = 0
    private let pageCount = 16

    var body: some View {
        VStack(spacing: 60) {
            TabView(selection: $selection) {
                ForEach(0..<pageCount, id: \.self) { index in
                    Rectangle()
                        .fill(.gray)
                        .padding(.horizontal, 20)
                }
            }
            .tabViewStyle(.page(indexDisplayMode: .never))
            .frame(height: 150)

            AnimatedPageControlView(viewModel: viewModel,
                                    selectedIndex: selection,
                                    pageCount: pageCount,
                                    maxDisplayedDots: 7,
                                    dotSpacing: 10,
                                    dotSize: 20,
                                    selectedColor: Color.green,
                                    defaultColor: Color.gray.opacity(0.5))
        }
    }
}

鸣谢

AnimatedPageControl 由 Advantage Financial Systems Experts 拥有和维护。

许可证

此项目在 MIT 许可下获得许可。有关详细信息,请参阅 LICENSE 文件。

联系我们

如有问题或建议,请随时通过 [email&#