CTXTutorialEngine 3.0.3

CTXTutorialEngine 3.0.3

Andrey 维护。



  • Andrey Medvedev

CTXTutorialEngine

Travis CI Swift Version License SPM Compatible Carthage compatible CocoaPods Compatible Platform

CTXTutorialEngine 是一个库,提供了在应用程序中显示提示或教程的功能,以帮助用户上手。

特性

  • 引擎可以读取教程设置的配置文件,或者您可以手动添加教程到引擎中。
  • 可以添加一系列自定义事件,这些事件将被引擎处理以触发教程。
  • 可以设置视图层次结构的轮询间隔。
  • 可以处理形状图层和带角的视图。
  • 自动存储显示过的教程状态,并提供重置所有显示过的教程状态的能力。
  • 将触摸事件转发到提示的视图中。
  • 可以显示自定义的提示视图。

要求

  • iOS 11.0+
  • Xcode 10.0+

安装

CocoaPods

platform :ios, '11.0'
use_frameworks!

pod 'CTXTutorialEngine', '~> 3.0.0'

Carthage

在您的 Cartfile 中添加:

github "andymedvedev/CTXTutorialEngine" ~> 3.0.0

Swift 包管理器

dependencies: [
.package(url: "https://github.com/andymedvedev/CTXTutorialEngine.git", .upToNextMajor(from: "3.0.0")))
]

不要忘记执行 import CTXTutorialEngine

快速开始

您想要为某些 UIView 显示提示视图。

  1. 将以下代码添加到 AppDelegateapplication(_:didFinishLaunchingWithOptions:) 中:
CTXTutorialEngine.shared.addTutorials { error in
    if let error = error {
        //handle error
    }
}
    
CTXTutorialEngine.shared.start()
  1. CTXTutorialConfig.json 添加到项目中,内容如下:
{
    "tutorials": [
        {
            "id": "0",
            "name": "My view tutorial",
            "events": [
                {
                    "CTXTutorialViewsShownEvent": {
                        "event": {
                            "steps": [
                                {
                                    "text": "Hello world!",
                                    "accessibilityIdentifier": "myView"
                                }
                            ]
                        }
                    }
                }
            ]
        }
    ]
}

您的 ViewController 代码应如下所示:

import CTXTutorialEngine

class ViewController: CTXTutorialViewController {

    private let myView: UIView = ...
    private let engine = CTXTutorialEngine.shared
    
    override func viewDidLoad() {
        super.viewDidLoad()

        myView.accessibilityIdentifier = "myView"

        view.addSubview(myView)
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        engine.observe(self, contentType: .dynamic)
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)

        engine.unobserve(self)
    }
}
  1. 默认的提示视图将显示,它将是纯白色带有黑色文本和灰色按钮,但如果您想更改外观,您应设置 CTXTutorialEngine.shared.appearance 的参数。您可以在应用启动时或在每个教程步骤中通过让您的 ViewController 符合 CTXTutorialEngineDelegate 来实现这一点
extension ViewController: CTXTutorialEngineDelegate {

    func engineWillShowTutorialStep(_ engine: CTXTutorialEngine, tutorial: CTXTutorial, with stepInfo: CTXTutorialStepPresentationInfo) {
        let appearance = engine.appearance
        ...
    }
}

并且不要忘记在 viewDidAppear(_:) 中设置 engine.delegate = self

高级设置

待办事项

贡献

我们非常感谢您对 CTXTutorialEngine 的贡献,更多信息请查看 LICENSE 文件。

特别感谢

Eugene Cherkasov (https://github.com/johnnie-che)

许可证

MIT 许可证。详细信息请参阅LICENSE 文件