TDOnboarding
[](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
}
}
带配置的组件
默认入门
委派
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文件。