TDOnboarding 2.1

TDOnboarding 2.1

Kishimotovn 维护。



  • Anh Phan Tran

TDOnboarding

[![CI 状态](https://img.shields.io/travis/Anh Phan Tran/TDOnboarding.svg?style=flat)](https://travis-ci.org/Anh Phan Tran/TDOnboarding) 版本 许可证 平台

示例

要运行示例项目,先克隆仓库,然后从 Example 目录运行 pod install

要求

Swift 4 iOS 9.0

安装

TDOnboarding可以通过CocoaPods获得。要安装它,只需将以下行添加到Podfile

pod 'TDOnboarding'

用法

TDOnboarding让你能快速使用[TDOnboadingItem]设置新引导并展示引导。

您只需通过其初始化器提供引导所需的项目和选项。

let onboarding = TDOnboarding(items: items, options: ExampleOnboardingOptions())
onboarding.present(from: self, completion: nil)

TDOnboardingItem

每个引导项必须符合TDOnboardingItem协议,其定义如下

public protocol TDOnboardingItem {
    var image: UIImage { get }
    var subtitle: NSAttributedString { get }
    var topTitle: NSAttributedString? { get }
    var bottomTitle: NSAttributedString? { get }
    var topActionButtonTitle: NSAttributedString? { get }
    var bottomActionButtonTitle: NSAttributedString? { get }
}

TDOnboadingOptions

这是一个协议,让快速配置引导屏幕,它还包括标准"The Distance"引导风格的默认值,你应该返回nil以获取默认值。这可以通过向枚举中添加更多可配置项来扩展该库。

选项包括

public protocol TDOnboardingOptions {
    var defaultBackgroundImage: UIImage { get }
    var statusBarStyle: UIStatusBarStyle { get }
    var paginationCell: TDOnboardingPaginationCell.Type { get }
    func measure(for component: TDOnboardingMeasurableComponent) -> CGFloat?
    func configure(for component: TDOnboardingConfigurableComponent)
    func color(for component: TDOnboardingColorizableComponent) -> UIColor?
}

public enum TDOnboardingMeasurableComponent {
    case bottomPanelHeight
    case imageTopDistance
    case imageBottomDistance
    case bottomActionButtonWidth
}

public enum TDOnboardingColorizableComponent {
    case paginationItem
    case backgroundImageOverlay
    case bottomPanel
}

public enum TDOnboardingConfigurableComponent {
    case topActionButton(UIButton)
    case bottomActionButton(UIButton)
    case backgroundImageView(UIImageView)
}

自定义分页视图

库提供默认的分页视图,但是可以创建并扩展TDOnboardingPaginationCell来创建自己的分页视图。

public protocol TDOnboardingPaginationCell {
    static var identifier: String { get }
    static var nib: UINib { get }
    func configure(for index: Int, isSelected: Bool, options: TDOnboardingOptions?)
}

单元格的最大高度是10pt。

分页视图将自动水平居中单元格。

之后,您只需在选项中提供单元格。

struct ExampleOnboardingOptions: TDOnboardingOptions {
    ... // Other options
    var paginationCell: TDOnboardingPaginationCell.Type {
        return CustomPaginationItemCell.self
    }
}

带配置的组件

tdonboardingcomponents

默认入门

tdonboardingcomponents

委派

TDOnboarding在入门屏幕上为按钮操作提供委派支持

...
let onboarding = TDOnboarding(items: items, options: ExampleOnboardingOptions())
onboarding.delegate = self
onboarding.present(from: self, completion: nil)
public protocol TDOnboardingDelegate: class {
    func topActionButtonTapped(on onboarding: TDOnboarding, itemIndex: Int)
    func bottomActionButtonTapped(on onboarding: TDOnboarding, itemIndex: Int)
}

作者

Anh Phan Tran, [email protected]

许可证

TDOnboarding许可协议为MIT。有关更多信息,请参阅LICENSE文件。