[iOS的材料组件] [TextFields]在引导视图和文本字段之间添加边距

时间:2018-07-04 15:05:12

标签: ios material-components material-components-ios

我在我的应用中使用了Google Material Components库的TextFields组件。

如下面的屏幕截图所示,文本输入与leadingView距离太近。如何在它们之间增加一些余量?

这是我用来创建此文本字段的代码:

emailTextField.translatesAutoresizingMaskIntoConstraints = false
emailTextField.delegate = self
emailTextField.leadingView = UIImageView(image: UIImage(named: "MailIcon"))
emailTextField.leadingViewMode = .always

emailTextFieldController = MDCTextInputControllerUnderline(textInput: emailTextField)
emailTextFieldController?.placeholderText = "Email"

1 个答案:

答案 0 :(得分:1)

下划线样式文本字段不再是推荐的设计。原始设计没有为主导视图指定填充常数。考虑更改为填充控制器,该填充控制器在用户研究中显示出更好的性能。

如果必须坚持使用下划线,则很容易获得所需的布局。

  1. 确保您使用的是最新版本的MaterialComponents。这可能意味着如果您使用的是CocoaPods,则需要运行pod update MaterialComponents
  2. 子类MDCTextInputControllerUnderline
  3. 覆盖属性leadingViewTrailingPaddingConstant并返回您想要的任何填充。在Objective-C中,这看起来像:

- (CGFloat)leadingViewTrailingPaddingConstant { return 16.f; }

  1. 设置您的文本字段以使用您创建的新类。

顺便说一句,我们只是推动了轻松更改清除按钮颜色的功能。您可以通过设置属性textInputClearButtonTintColor将其设置为与下划线和文字匹配。