如何使用Swift 4在iOS中使用Material Components实现多行文本字段

时间:2018-11-15 14:41:10

标签: ios swift material-design

我正在尝试使用Swift 4在ios中使用Google的材料设计制作多行文本字段。

2 个答案:

答案 0 :(得分:0)

您可以使用Google提供的MDCTextInputControllerOutlinedTextArea多行文本字段,可以在google documentation

中找到一些示例

如果您不想使用Google组件,建议您尝试使用 TextView 而不是 TextField

您可以使用 TextView 提供的 sizeThatFits 功能轻松调整 TextView 的大小。

答案 1 :(得分:0)

如果要以编程方式初始化多行文本字段:

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
    }
}