UITextView с границей и плавающим заполнителем с использованием MDCMultilineTextField

#ios #swift #uitextfield #uitextview #mdc-components

#iOS #swift #uitextfield #uitextview #mdc-компоненты

Вопрос:

Я пытаюсь добиться того, что показано на этих изображениях ниже введите описание изображения здесь

При редактировании пользователем введите описание изображения здесь

вот мой код

     @IBOutlet weak var commentTxtField: MDCMultilineTextField!  // Connected to storyboard

commentTxtField.textView?.delegate = self
        commentTxtField.textView?.frame = CGRect(x: (commentTxtField.textView?.frame.origin.x)!, y: (commentTxtField.textView?.frame.origin.y)!, width: (commentTxtField.textView?.frame.width)!, height: CGFloat(GenUtils.shared.getHeightForPercent(percent: 11.99)))
        commentTxtField.expandsOnOverflow = false
        commentTextFieldController = MDCTextInputControllerOutlinedTextArea(textInput: commentTxtField)
        commentTextFieldController?.placeholderText = "Comment"

        commentTextFieldController?.isFloatingEnabled = true
        commentTextFieldController!.characterCountMax = UInt(maxCharactersCount)
        commentTextFieldController?.characterCountViewMode = UITextField.ViewMode.never
        commentTextFieldController?.activeColor = UIColor.white.withAlphaComponent(0.6)
        commentTextFieldController?.normalColor = UIColor.white.withAlphaComponent(0.2)
        //        emailTextFieldController?.borderFillColor = UIColor.white
        commentTextFieldController?.floatingPlaceholderActiveColor = UIColor(red: 249/255, green: 249/255, blue: 249/255, alpha: 0.54)
        commentTextFieldController?.inlinePlaceholderColor = UIColor.white
        commentTextFieldController?.floatingPlaceholderNormalColor = UIColor(red: 249/255, green: 249/255, blue: 249/255, alpha: 0.54)
        commentTxtField.textColor = UIColor.white
        commentTextFieldController?.inlinePlaceholderFont = UIFont(name:"Avenir-Medium",size:16)
  

пытался установить textviewframe, но не отражается на экране. А также не удается получить плавающий заполнитель при выравнивании линии границы. Чего мне не хватает?

Комментарии:

1. Здравствуйте, я сталкиваюсь с такой же проблемой, у вас есть какие-либо соображения по этому поводу?

2. @JatinPatel использует приведенный ниже код.

Ответ №1:

 use **MDCTextField** as below:

class SomeVC: UIViewController, UITextFieldDelegate {

    var textFieldControllerFloating = MDCTextInputControllerUnderline()

    override func viewDidLoad() {
        let textFieldFloating = MDCTextField()
        self.view.addSubview(textFieldFloating)
        //place textfield where you want
        textFieldFloating.placeholder = "Some cool animating placeholder"
        textFieldFloating.delegate = self
        // This will animate the textfield's place holder
        textFieldControllerFloating = MDCTextInputControllerUnderline(textInput: textFieldFloating) 
    }
}
  

также, если вам нужно выделенное текстовое поле, вы должны использовать «Выделенное» текстовое поле
https://material.io/develop/ios/components/textfields /