Как реализовать многострочное текстовое поле, используя Material Components в ios, используя swift 4 - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь создать многострочное текстовое поле, используя дизайн материалов Google в ios, используя swift 4.

Ответы [ 2 ]

0 голосов
/ 23 июля 2019

Если вы хотите инициализировать многострочное текстовое поле программно:

import UIKit
import MaterialComponents.MDCMultilineTextField

class MyMultilineTextField: MDCMultilineTextField {

    private var controller: MDCTextInputControllerOutlinedTextArea?
    private var placeholderText: String

    init(placeholder: String) {
        self.placeholderText = placeholder

        super.init(frame: .zero)
        initialize()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    private func initialize() {
        translatesAutoresizingMaskIntoConstraints = false
        clearButtonMode = .whileEditing

        controller = MDCTextInputControllerOutlinedTextArea(textInput: self)
        controller?.placeholderText = placeholderText
    }
}

Затем в другом месте вашего проекта, где вы хотите использовать текстовое поле:

class SomeViewController: UIViewController {

    override func viewDidLoad() {
         super.viewDidLoad()

         let myTextField = MyMultilineTextField(placeholder: "Some text...")

         view.addSubView(myTextField)

         // Configure constraints for myTextField as necessary
    }
}
0 голосов
/ 15 ноября 2018

Вы можете использовать многострочное текстовое поле MDCTextInputControllerOutlinedTextArea, предоставленное Google, некоторые примеры можно найти в документации Google

Если вы не хотите использовать компоненты Google, я предлагаю попробовать использовать TextView вместо TextField .

Вы можете легко изменить размер TextView , используя sizeThatFits функция, предоставляемая TextView .

...