[Материальные компоненты iOS][TextFields] Добавить отступ между ведущим видом и текстовым полем

Я использую в своем приложении компонент TextFields библиотеки Google Material 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"

person ThibaultV    schedule 04.07.2018    source источник


Ответы (1)


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

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

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

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

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

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

person Will Larche    schedule 05.07.2018