RYFloatingInput 0.1.6

RYFloatingInput 0.1.6

ycray 维护。



 
依赖项
RxSwift~> 4.0
RxCocoa~> 4.0
 

  • 作者
  • Ray ChengJui YU

RYFloatingInput

RYFloatingInput,受“浮动标签模式”启发,并使用 RxSwift & mvvm 模式实现,提供可完全自定义的文本输入控制,以及 painless 的文本验证。

CI Status Version License Platform

功能

  • 浮动标签模式
  • 支持自定义:主题、颜色、图标
  • 直观的文本输入验证和回调

安装

CocoaPods

在 CocoaPods 上可用。只需将以下内容添加到您的项目 Podfile 中即可。

pod 'RYFloatingInput'

入门

从界面构建器设置

  1. 将一个 UIView 实例拖入你的 UIViewController/UIView
  2. 将 UIView 实例的类更改为 RYFloatingInput
  3. 将 UIView 实例的模块更改为 RYFloatingInput
  4. 将其连接到 UIViewController/UIView 的 IBOutlet 实例。

编程式设置

创建一个 RYFloatingInput 实例并将其添加到父视图中

let floatingInput = RYFloatingInput(frame: frame)
self.view.addSubview(floatingInput)

使用方法

设置构建器

RYFloatingInputSetting 是使 RYFloatingInput 正确工作的必需品,它将所有设置和自定义组合成一个单一的构建函数。以下是步骤:

  1. 使用 RYFloatingInputSetting.Builder 初始化 RYFloatingInputSetting 实例
  2. 添加功能和自定义
  3. 通过创建 RYFloatingInputSetting 实例来设置 RYFloatingInput

示例

let setting = RYFloatingInputSetting.Builder.instance()
    .theme(.dark)
    .iconImage(UIImage(named: "image_name")!)
    .placeholer("I AM PLACEHOLDER")
    .secure(true)
    .build()

floatingInput.setup(setting: setting)

输入文本验证

RYFloatingInput 中设置文本验证非常简单,只需要在设置构建器中添加 .maxLength.inputType 实现,即可完成。您还可以自定义警告消息,并在任何无效输入发生时触发回调事件。不需要复杂代理。

输入类型验证的 2 个选项

  • .number - 仅接受数字输入。
  • .regex(pattern: String) - 使用您想要的正则表达式检查输入文本。

示例

RYFloatingInputSetting.Builder.instance()
    .theme(.standard)
    .maxLength(8, onViolated: (message: "Exceed max length", callback: {
        print("Exceed max length")
    }))
    .inputType(.number, onViolated: (message: "Invalid input, number only", callback: {
        print("Invalid input, number only")
    }))
    .build()

颜色和主题定制

颜色定制在几乎所有的组件(比如背景、分隔符、占位符、警告标签和输入光标)中实现了,以下是一些颜色定制的选项:

RYFloatingInputSetting.Builder.instance()
    .backgroundColor(.clear)
    .textColor(.darkText)
    .placeholderColor(.lightGray)
    .dividerColor(.lightGray)
    .cursorColor(.blue)
    .accentColor(.cyan)
    .warningColor(.red)
    .build()

通常情况下,分隔符和悬浮标签会显示为强调色,一旦输入无效文本则变为警告色。

主题是一种更便捷的方式来自定义颜色,它涵盖了上述所有颜色选项。在 RYFloatingInput.Theme 中定义了3种主题选项:

  • .standard - 默认
  • .light
  • .dark
RYFloatingInputSetting.Builder.instance()
    .theme(.light)
    .build()

请注意,如果在构建器中同时设置了主题和颜色定制(如文本颜色),则主题中的文本颜色将被忽略。

分隔符高度

提供了3种分隔符高度选项: .thin.regular.bold。默认为 .regular

RYFloatingInputSetting.Builder.instance()
    .dividerWeight(.thin)
    .build()

图标 / 占位符 / 密文文本

设置输入图标、占位符、密文文本选项。

RYFloatingInputSetting.Builder.instance()
    .iconImage(UIImage(named: "image_name")!)
    .placeholer("I AM PLACEHOLDER")
    .secure(true)
    .build()

待办事项

  • 可定制的分隔符高度 - v0.1.2
  • 支持自定义字体
  • 多种文本验证条件
  • 活动指示器 & 同步任务完成事件

依赖关系

RxSwift - Swift中的响应式编程

许可证

RYFloatingInput 可在 MIT 许可证下使用。有关更多信息,请参阅 LICENSE 文件。

作者

Ray ChengJui YU - [email protected]