RAGTextField

CI Status Version License Platform Carthage compatible

UITextField 的子类,它在文本下方添加动画占位符和可选的提示标签。

它支持文本背景中的任意视图(提供了轮廓和下划线视图),以及左右视图、文本对齐方式、灵活的内边距和偏移量。

示例

要运行示例项目,请克隆仓库,并首先从 Example 目录运行 pod install

要求

使用 Swift 5 编写。需要 iOS 9。

Swift 支持

Swift 版本 库版本
3 <= 0.2.1
4 <= 0.12.1
5 从 0.13.0 起

安装

RAGTextField 可通过 Swift Package Manager (SPM)、CocoaPodsCarthage 获取。

Cocoapods

将以下行添加到你的 Podfile

pod "RAGTextField"

请在终端中调用 pod try RAGTextField 尝试该 pod。

Carthage

将以下行添加到你的 Cartfile

github "raginmari/RAGTextField"

如何使用

安装库并导入模块 RAGTextField 后,可以像使用任何其他文本字段一样使用此文本字段(在代码和你的 Storyboard 和 nib 文件中)。

这些是与 UITextField 的主要区别

文本字段的许多属性都是 IBInspectable

占位符

占位符替换了超类的占位符。分配给 placeholder 属性的值完全由 RAGTextField 处理。占位符的文本对齐方式与文本字段的文本对齐方式相匹配。

这些是您可以自定义占位符的外观和行为的不同方式

提示标签

默认情况下禁用提示标签,并且当 hint 属性的值为 nil 时也禁用。如果为 hint 属性分配了非 nil 值(包括空字符串),则会更新标签的布局并为提示标签预留空间。提示的文本对齐方式与文本字段的文本对齐方式相匹配。提示支持多行文本。

这些是您可以自定义提示外观的不同方式

文本背景视图

通过将任意视图分配给 textBackgroundView 属性,将视图添加到文本的背景中。其 frame 在需要时由 RAGTextField 更新。视图的大小调整为与文本(以及占位符和/或提示)的大小加上内边距相匹配。

这些是您可以自定义文本背景视图外观的不同方式。

下划线视图

使用 UnderlineView 类在文本下方绘制动画下划线。将该类的实例分配给文本字段的 textBackgroundView 属性。下划线的外观可以由视图本身自动更新(请参阅其 textField 属性),也可以从视图控制器或文本字段委托手动控制。示例项目使用了下划线视图。

轮廓视图

使用 OutlineView 类在文本周围绘制轮廓。轮廓可以具有圆角,并且可以填充和内插。将该类的实例分配给文本字段的 textBackgroundView 属性。根据 textPaddingMode 值,轮廓可以选择性地包括占位符和/或提示标签。

Bond

如果你想将此文本字段与出色的 Bond 一起使用,你可以添加这些扩展,以便可以绑定到 hintplaceholder 属性

extension ReactiveExtensions where Base: RAGTextField {
    
    var hint: Bond<String?> {
        return bond { textField, hint in
            textField.hint = hint
        }
    }
    
    var placeholder: Bond<String?> {
        return bond { textField, placeholder in
            textField.placeholder = placeholder
        }
    }
}

已知问题

这些是 RAGTextField 的已知或可能存在的问题

这些问题有望在未来的更新中得到解决。

作者

raginmari, reimar.twelker@web.de

许可证

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