AnimatedTextInput 0.5.5

AnimatedTextInput 0.5.5

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布时间最后发布2018年9月
SPM支持 SPM

Victor Baro 维护。




AnimatedTextInput GitHub version

Jobandtalent 应用程序中使用的 iOS 自定义文本输入组件。

安装

使用 cocoapods 在您的项目中安装此自定义控件。

pod 'AnimatedTextInput', '~> 0.3.0'

用法

使用主类 AnimatedTextInput。您可以创建它,无论是通过代码还是将新实例的 UIView 拖入您的 storyboard/nib 文件,并在身份检查器中设置其类。

输入类型

目前有6种不同类型,在AnimatedTextInputType枚举中定义。

  • 文本:基本的文本输入,与UITextField的行为相同。

  • 密码:安全文本输入和 eye 开关按钮,用于显示其内容。

  • 数字:数字文本输入。

  • 选择:禁用用户对文本输入交互。期望执行tapAction,并在文本输入被按压时调用。通常用于展示一组选项并在选中一个选项后修改其状态。

  • 多行:与UITextView类似,没有滚动。视图的intrinsicContentSize将随着用户输入而增长。如果需要这种行为并使用自动布局,请固定底部或顶部,否则视图不会增长(就像使用UILabel一样)。

  • 通用:期望一个配置好的TextInput。如果需要一个带有自定义行为的UITextField或UITextView,请使用此选项。检查TextInputTextInputDelegate协议并创建一个符合它们的类。

要切换类型,只需使用type属性赋予AnimatedTextInputType枚举中的一个值。

textInput.type = .numeric

样式

创建新的视觉效果就像创建一个新的符合AnimatedTextInputStyle协议的struct一样简单。

例如

struct CustomTextInputStyle: AnimatedTextInputStyle {

    let activeColor = UIColor.orangeColor()
    let inactiveColor = UIColor.grayColor().colorWithAlphaComponent(0.3)
    let errorColor = UIColor.redColor()
    let textInputFont = UIFont.systemFontOfSize(14)
    let textInputFontColor = UIColor.blackColor()
    let placeholderMinFontSize: CGFloat = 9
    let counterLabelFont: UIFont? = UIFont.systemFontOfSize(9)
    let leftMargin: CGFloat = 25
    let topMargin: CGFloat = 20
    let rightMargin: CGFloat = 0
    let bottomMargin: CGFloat = 10
    let yHintPositionOffset: CGFloat = 7
}

然后,使用style属性来设置它。

textInput.style = CustomTextInputStyle()

其他注意事项

  • 您可以将AnimatedTextInput用作UITextFieldUITextView的替代品。要设置或检索输入文本,请使用text属性。

  • 该控件提供了一个设置计数器标签的简单方式。只需调用函数showCharacterCounterLabel(with:)并给出一个最大字符数。

  • AnimatedTextInput有自己的委托方法,与UITextFieldDelegateUITextViewDelegate非常相似。

下载并查看示例项目以获取更多示例。


最后一个问题:为什么创建一个TextInput抽象而不直接使用UITextFieldUITextView呢?

从API的角度来看,我们只想处理一个控件。然而,我们需要一些被UITextFieldUITextView不支持的行为。例如,我们希望AnimatedTextInput支持多行输入,但UITextField不支持这一点。我们还希望密码类型支持安全文本输入,但UITextView也不支持这一点。这就是我们最终创建TextInput抽象的原因。

常见问题解答

  1. 如何启用自动纠正(或UITextFieldUITextView提供的任何属性)?https://github.com(jobandtalent/AnimatedTextInput/issues/67