SwiftyOnboard 1.4.0

SwiftyOnboard 1.4.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布时间上次发布2021年10月
SPM支持 SPM

Juan Pablo 维护。



SwiftyOnboard

一个简单的 iOS 框架,允许开发者为应用程序创建引导流程。

Swift Version Build Status License CocoaPods Carthage compatible Platform

SwiftyOnboard 使将引导流程添加到任何 iOS 应用程序变得简单。SwiftyOnboard 处理视图分页的所有逻辑,允许您快速地快速添加高度可定制的引导到您的应用程序,全部都在一个轻量级框架中。

内容

需求

  • iOS 12.0+
  • Xcode 10.3+

安装

CocoaPods

您可以使用CocoaPods通过在您的Podfile中添加以下内容来安装SwiftyOnboard:

use_frameworks!
pod 'SwiftyOnboard'

如果在运行了pod install后出现Unable to find a specification for `SwiftyOnboard`.错误。

在您的项目目录中运行以下命令

pod repo update
pod install

Carthage

要通过Carthage安装,请将以下内容添加到您的Cartfile中

github "juanpablofernandez/SwiftyOnboard"

手动

  1. SwiftyOnboard.swiftSwiftyOnboardOverlay.swiftSwiftyOnboardPage.swift拖放到您的项目中。
  2. 就这样

用法

  1. SwiftyOnboard模块导入到您的ViewController类中
import SwiftyOnboard
  1. SwiftyOnboard添加到ViewController,然后为它设置dataSource和delegate
class ViewController: UIViewController {
    override func viewDidLoad() {
            super.viewDidLoad()

            let swiftyOnboard = SwiftyOnboard(frame: view.frame)
            view.addSubview(swiftyOnboard)
            swiftyOnboard.dataSource = self
        }
}
  1. 使您的ViewController遵循SwiftyOnboardDataSource协议并实现所有方法,例如
extension ViewController: SwiftyOnboardDataSource {

        func swiftyOnboardNumberOfPages(swiftyOnboard: SwiftyOnboard) -> Int {
            return 3
        }

        func swiftyOnboardPageForIndex(swiftyOnboard: SwiftyOnboard, index: Int) -> SwiftyOnboardPage? {
            let page = SwiftyOnboardPage()
            return page
        }
}
  1. SwiftyOnboard具有默认实现。您可以重写它来自定义其行为

属性

SwiftyOnboard有以下属性

public var dataSource: SwiftyOnboardDataSource?

支持SwiftyOnboardDataSource协议的对象,可以向SwiftyOnboard提供视图来填充它。

public var delegate: SwiftyOnboardDelegate?

支持SwiftyOnboardDelegate协议的对象,可以响应SwiftyOnboard事件。

public var shouldSwipe: Bool

是否启用滑动操作[默认=true]。

public var fadePages: Bool

页面转换时是否启用淡入淡出效果[默认=true]。

方法

SwiftyOnboard类有以下方法

func goToPage(index: Int, animated: Bool)

此方法允许你切换到引导过程中的特定页面。

协议

SwiftyOnboard遵循Apple的数据驱动视图惯例,通过提供两个协议接口SwiftyOnboardDataSource和SwiftyOnboardDelegate。

SwiftyOnboardDataSource

SwiftyOnboardDataSource协议有以下方法

func swiftyOnboardNumberOfPages(swiftyOnboard: SwiftyOnboard) -> Int

返回引导过程中页面(项)的数量。

func swiftyOnboardViewForBackground(swiftyOnboard: SwiftyOnboard) -> UIView?

返回用于显示为引导过程背景的视图。

func swiftyOnboardPageForIndex(swiftyOnboard: SwiftyOnboard, index: Int) -> SwiftyOnboardPage?

返回在引导过程中指定索引处显示的视图(页面)。

func swiftyOnboardViewForOverlay(swiftyOnboard: SwiftyOnboard) -> SwiftyOnboardOverlay?

返回显示在引导过程页面之上的覆盖(视图),例如[不随页面移动的“继续”和“跳过”按钮,还包括页面控制条]

func swiftyOnboardOverlayForPosition(swiftyOnboard: SwiftyOnboard, overlay: SwiftyOnboardOverlay, for position: Double)

编辑所需位置的覆盖(视图)。例如[当达到最后一页时,将“继续按钮”文本更改为“完成”]

func swiftyOnboardBackgroundColorFor(_ swiftyOnboard: SwiftyOnboard, atIndex index: Int) -> UIColor?

设置给定索引页面的背景颜色。(当你有不同背景颜色的页面时非常有用)

SwiftyOnboardDelegate

SwiftyOnboardDelegate协议有以下方法

func swiftyOnboard(swiftyOnboard: SwiftyOnboard, currentPage index: Int)

每当页面显示时,都会调用此方法,它包含了该页面的索引。无论页面是通过代码还是用户交互显示的,都会调用此方法。

func swiftyOnboard(swiftyOnboard: SwiftyOnboard, leftEdge position: Double)

每当页面滚动时,都会调用此方法,它包含了屏幕左侧和第一个页面左侧之间的当前距离。

func swiftyOnboard(swiftyOnboard: SwiftyOnboard, tapped index: Int)

每当页面被用户轻触时,都会调用此方法,它包含了被轻触的页面的索引。

注释

  • 不支持横版模式

贡献

欢迎贡献力量!但在贡献时,您必须遵循某些指南

  • 编写有描述性的提交信息。
  • 为每个功能创建一个拉取请求(不要创建一个添加了3个新功能的拉取请求。为每个功能创建一个独立的拉取请求,并附上描述性信息)。
  • 不要更新示例项目或任何其他无关文件。

我想看到您的卓越入站体验。截图并/or 记录一个gif并发送给我的邮箱!

许可

根据MIT许可证发布。更多信息请见 LICENSE