SmartHint 1.0.5

SmartHint 1.0.5

Gautier Billard 维护。



SmartHint 1.0.5

  • 作者:
  • Gautier Billard

SHSmarthint

Build Status

它是什么?

SmartHint 是一个框架,让您能够添加横幅、呼出或提醒来指向用户的某个操作。所有这些视图都是互动的、可定制的,并且易于使用简单的属性和回调来响应触摸事件和按钮点击实现。SmartHint 相比标准的 UIKit 等效实现更容易实现,对于简单的任务更加灵活和可定制。

基本集成

使用以下命令将框架添加到您的项目中。

pod 'SmartHint', '~> 1.0.3'

如何使用 SH 核心功能

首先,必须将框架导入到您正在工作的文件中

import SmartHint

SmartHint 提供了一种方便的方法,可以在视图层次结构中的某些视图上添加呼出和横幅。要与框架交互,请简单地使用内置的 UIViewController 扩展

self.sh

横幅

您可以在下面您的 UINavigationController 的 navBar 中创建并添加横幅,如下所示

 guard let targetView = navigationController?.navigationBar else {return}
 sh.addHint(hint: Hint(style: .banner(.bottom), message: "Hey this is a banner"), to: targetView) {
   //Respond to banner view's tap event
 }

可选的完成参数会在横幅上触发点击事件时被触发。

提示语

您可以在指定视图下方创建并添加提示语,如下所示

sh.addHint(hint: Hint(style: .callout(.triangle), message: "Hey this is a callout"), to: targetView) {
 //Respond to banner view's tap event
}

可选的完成参数会在提示语上触发点击事件时被触发。

构建自定义提示

您可以通过使用 Hint 对象的属性来创建自定义提示

自定义提示

可以更改核心提示的属性,如下所示更改背景颜色、文本颜色、消息或展示动画样式

let hint = Hint(style: .banner(.bottom))
hint.backgroundColor = .white
hint.buttonsColor = .systemGray6
hint.message = "This is my banner's message"
hint.animationStyle = .fromTop

在 AlertView 中添加一个 textField

Alert 特有的功能,您可以选择在视图中显示 textField。以下示例说明了如何告诉 SmartHint 您需要一个 textField 以及如何订阅其事件。

let hint = Hint(style: .alert)
hint.hasTextField = { [weak self] textField in
   textField.delegate = self
   return true
}

您分配的视图必须遵守 UITextFieldDelegate 协议。这样做:

extension YourViewController: UITextFieldDelegate {
    func textFieldDidChangeSelection(_ textField: UITextField) {
        //Respond to changes
    }
}

添加按钮

要添加按钮,您只需向 addAction(_ action: HintAction) 方法传递一个完成处理程序。假设您需要添加两个按钮

let hint = Hint(style: .banner(.bottom))
hint.addAction(HintAction(title: "first button", handler: { hint in
    //Do something when the first button gets tapped
}))
hint.addAction(HintAction(title: "second button", handler: { hint in
    //Do something when the second button gets tapped
}))

请注意,在回调中您可以访问当前关联的提示对象。如果您需要访问提示的特定参数,例如AlertView的可选文本字段,这非常有用。

修改核心属性

如果您需要更新一些HintView的核心属性以适应您的应用程序布局样式,可以使用SmartHint viewController的扩展提供的setDefaultValue(_ value: Any, forKey key: ConstantName)方法。

sh.setDefaultValue(CGFloat(12), forKey: .hintViewCornerRadius)
sh.setDefaultValue(CGFloat(8), forKey: .buttonsCornerRadius)

请注意,您必须指明正确的值类型,否则模块将抛出异常。例如,对于视图布局相关值提供CGFloat,对于动画时间等提供Double。