同心圆引导 (Concentric Onboarding)

一个用于实现引导或新手入门流程的 iOS 库,使用 SwiftUI 编写,支持点击操作。

SPM Compatible Cocoapods Compatible Carthage Compatible License: MIT

用法

  1. 为您的页面创建 View 的子类。
  2. 创建至少两个页面,并填充内容。
  3. 创建一个元组数组 - (页面, 背景颜色)。
  4. 创建 ConcentricOnboardingView 并将其放置在您的视图层级结构中。
struct ContentView: View {
    var body: some View {
        return ConcentricOnboardingView(pageContents: [<your_page>, <your_background_color>])
    }
}
  1. 如果您想让动画更快/更慢,请传递 duration 参数。
ConcentricOnboardingView(pageContents: [<your_page>, <your_background_color>])
	.(duration: 2.0)
  1. 如果您想更改按钮上的默认图标,请传递 icon name 参数。
ConcentricOnboardingView(pageContents: [<your_page>, <your_background_color>])
	.(nextIcon: "chevron.forward")

公共接口

goToNextPage(animated: Bool = true) - 如果您需要,可以手动调用此方法。
goToPreviousPage(animated: Bool = true) - 如果您需要,可以手动调用此方法。

可赋值闭包

.animationWillBegin - 在动画开始前调用
.animationDidEnd - 在动画结束后调用
.didGoToLastPage - 在动画结束并到达最后一页后调用
.didChangeCurrentPage - 在页面更改后调用
.insteadOfCyclingToFirstPage - 替换在最后一页上点击“下一步”后跳转到第一页的默认行为
.insteadOfCyclingToLastPage - 替换在第一页上点击“上一步”返回上一页的默认行为
.didPressNextButton - 使用用户自定义的闭包替换默认的按钮动作

示例

要尝试 ConcentricOnboarding 示例

安装

Swift Package Manager

dependencies: [
    .package(url: "https://github.com/exyte/ConcentricOnboarding.git")
]

CocoaPods

要安装 ConcentricOnboarding,只需将以下行添加到您的 Podfile 中

pod 'ConcentricOnboarding'

Carthage

要使用 Carthage 将 ConcentricOnboarding 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它

github "Exyte/ConcentricOnboarding"

要求

致谢

非常感谢 Cuberto 团队 提供的设计理念和灵感。

我们其他的开源 SwiftUI 库

PopupView - Toasts 和 popups 库
Grid - 最强大的 Grid 容器
ScalingHeaderScrollView - 具有粘性标题的滚动视图,该标题在您滚动时会缩小
AnimatedTabBar - 带有许多预设动画的标签栏
MediaPicker - 可定制的媒体选择器
Chat - 聊天 UI 框架,具有完全可定制的消息单元格、输入视图和内置的媒体选择器
OpenAI OpenAI REST API 的封装库
AnimatedGradient - 动画线性渐变
FloatingButton - 浮动按钮菜单
ActivityIndicatorView - 一系列动画加载指示器
ProgressIndicatorView - 一系列动画进度指示器
FlagAndCountryCode - 每个国家/地区的电话代码和标志
SVGView - SVG 解析器
LiquidSwipe - 流体导航动画