[Материал Компоненты iOS] [TextFields] Добавить поле между ведущим видом и текстовым полем - PullRequest
0 голосов
/ 04 июля 2018

Я использую в своем приложении компонент TextFields библиотеки Google Components .

Как вы можете видеть на следующем скриншоте, ввод текста слишком близок к 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 голосов
/ 05 июля 2018

Текстовое поле в стиле подчеркивания больше не является рекомендуемым дизайном. И оригинальный дизайн не определил константу заполнения для ведущего представления. Подумайте о переходе на заполненный контроллер, который, как было показано, работает намного лучше в исследованиях пользователей.

Если вам нужно подчеркнуть подчеркивание, получить желаемый макет довольно просто.

  1. Убедитесь, что вы используете последнюю версию MaterialComponents. Это может означать, что вам нужно запустить pod update MaterialComponents, если вы используете CocoaPods.
  2. Подкласс MDCTextInputControllerUnderline.
  3. Переопределите свойство leadingViewTrailingPaddingConstant и верните любой отступ, который вы хотите. В Objective-C это будет выглядеть так:

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

  1. Настройте текстовые поля для использования нового класса, который вы создали.

Кстати, мы просто включили возможность легко менять цвет кнопки очистки. Вы можете установить его в соответствии с подчеркиванием и текстом, установив свойство textInputClearButtonTintColor.

...