ShowcaseKit 1.1.2

ShowcaseKit 1.1.2

Jérôme Alves 维护。



  • Jérôme Alves

ShowcaseKit

pod

什么是展示实例?

名词:表示对一个项目给予关注和好评的展示场所

这是一种在应用中轻松嵌入视图控制器,以展示您已完成的内容的方式。

您可以展示带有示例数据的简单视图,也可以展示完整的流程。一切都取决于您。

总体思路是能够在外部整个功能完成之前展示您正在作的某项工作,这样您仍然可以将它合并到主分支上 - 这就是我们所说的真正的持续集成。

要求

  • iOS 8.0+
  • Xcode 9.0+
  • Swift 4.1+

安装

CocoaPods

在您的 Podfile 中添加以下内容:

pod "ShowcaseKit"

Swift Package.Manager

使用 Xcode 11 和 SPM 集成在 https://github.com/heetch/ShowcaseKit 中。

使用方法

创建新的 Showcases

您需要创建一个符合 Showcase 协议的新类。唯一必须实现的接口是 makeViewController()

final class MyAwesomeFeatureShowcase : Showcase {

    func makeViewController() {
    
        // Setup any kind of view controller here and return it
        
    }
}

展示浏览器

展示套件 内置了一个实用的准备就绪的展示浏览器,让您能够轻松地对展示进行排序。您可以将此浏览器作为模态窗口显示在单个行中。

ShowcasesViewController.present(over: self)

或者,您可以简单地进行初始化,以按您想要的方式嵌入(在现有的导航控制器或标签栏控制器中)

let browser = ShowcasesViewController(showcases: .all)

⚠️唯一的要求是 ShowcasesViewController 必须在某个时刻位于 UINavigationController 中,因为需要执行代码 push 其他控制器。

可选覆盖

您可以覆盖 3 个默认展示属性。

标题

static var title: String { get }

默认情况下,标题是通过Showcase类名推断出来的,通过添加Showcase后缀并将驼峰式字符串转换为首字母大写字符串。

MyAwesomeFeatureShowcase  My Awesome Feature

但是您可以在展示中覆盖这个名称。

final class MyAwesomeFeatureShowcase : Showcase {

    static let title = "My Awesome Feature (empty state)"
    
    func makeViewController() {...}
}

路径

static var path: ShowcasePath { get }

默认情况下,展示都添加到了浏览器的根目录,在一个未命名的部分。但是,您可以使用以下代码来自定义。

static let path = ShowcasePath.root
    .underSection(named: "Sign Up")
    .inFolder(named: "Onboarding")

在这里,要访问展示,我们需要进入注册表视图部分,然后打开入门文件夹。

展示模式

static var presentationMode: ShowcasePresentationMode { get }

默认情况下,展示会推送到当前的导航控制器。但有时您需要控制展示和关闭。因此,您可以更改presentationMode.modal。但是您将不得不处理您的展示的关闭。

SwiftUI 预览

SwiftUI 预览和展示配合得非常好。您可以在开发阶段利用 SwiftUI 预览的强大功能,并在您完成时将这些预览作为展示可用,以便您的团队能(QA、产品经理等...)亲身体验。

为此,您只需使您的展示符合PreviewProvider,并实现static var previews: some View要求,至少调用一次preview()

import SwiftUI
final class MyAwesomeFeatureShowcase : Showcase, PreviewProvider {
    //...

    @available(iOS 13, *)
    static var previews: some View {
        preview()
    }
}

但是,您也可以分组多个preview()调用,以便您可以同时预览多个环境中的展示。

import SwiftUI
final class MyAwesomeFeatureShowcase : Showcase, PreviewProvider {
    //...
    
    @available(iOS 13, *)
    static var previews: some View {
        Group {
            preview(on: "iPhone SE")
            preview(on: "iPhone X")
            preview(on: "iPhone X").environment(\.colorScheme, .dark)
        }
    }
}

许可协议

本框架提供于MIT许可协议下。