簡體   English   中英

當值為空字符串時,TextField不顯示底線

[英]TextField not show bottom line when value is empty string Material Swift

我在視圖中使用material textfield 但是,當此文本textfield's值為空字符串時,不會顯示下划線。 我該如何解決?

在下圖中: email2具有空string並且不顯示下划線。

在此處輸入圖片說明

這是我的看法:

import UIKit
import SnapKit
import Material

class EditMailView: UIView {

    public let email1: UILabel = {
        let lb = UILabel()
        lb.text = "email1"
        lb.font = UIFont.systemFont(ofSize: 14)
        return lb
    }()

    public let email2: UILabel = {
        let lb = UILabel()
        lb.text = "email2"
        lb.font = UIFont.systemFont(ofSize: 14)
        return lb
    }()

    public let email1Input: TextField = {
        let field = TextField()
        field.font = UIFont.systemFont(ofSize: 15)
        return field
    }()

    public let email2Input: TextField = {
        let field = TextField()
        field.font = UIFont.systemFont(ofSize: 15)
        return field
    }()


    public let email1Counter: UILabel = {
        let lb = UILabel()
        lb.font = UIFont.systemFont(ofSize: 14)
        return lb
    }()

    public let email2Counter: UILabel = {
        let lb = UILabel()
        lb.font = UIFont.systemFont(ofSize: 14)
        return lb
    }()


    convenience init(email1 e1: String, email2 e2: String) {
        self.init(frame: .zero)

        email1Input.text = e1
        email2Input.text = e2

        addSubview(email1)
        addSubview(email2)
        addSubview(email1Input)
        addSubview(email2Input)
        addSubview(email1Counter)
        addSubview(email2Counter)

        email1.snp.makeConstraints { make in
            make.top.equalTo(10)
            make.left.equalTo(10)
            make.right.equalTo(10)
            make.bottom.equalTo(email1Input.snp.top).offset(-10)
        }

        email1Input.snp.makeConstraints { make in
            make.top.equalTo(email1.snp.bottom).offset(10)
            make.left.equalTo(10)
            make.right.equalTo(10)
            make.bottom.equalTo(email1Counter.snp.top).offset(-10)
        }

        email1Counter.snp.makeConstraints { make in
            make.top.equalTo(email1Input.snp.bottom).offset(10)
            make.left.equalTo(10)
            make.right.equalTo(10)
            make.bottom.equalTo(email2.snp.top).offset(-10)
        }

        email2.snp.makeConstraints { make in
            make.top.equalTo(email1Counter.snp.bottom).offset(10)
            make.left.equalTo(10)
            make.right.equalTo(10)
            make.bottom.equalTo(email2Input.snp.top).offset(-10)
        }

        email2Input.snp.makeConstraints { make in
            make.top.equalTo(email2.snp.bottom).offset(10)
            make.left.equalTo(10)
            make.right.equalTo(10)
            make.bottom.equalTo(email2Counter.snp.top).offset(-10)
        }

        email2Counter.snp.makeConstraints { make in
            make.top.equalTo(email2Input.snp.bottom).offset(10)
            make.left.equalTo(10)
            make.right.equalTo(10)
            make.bottom.equalToSuperview().offset(-10)
        }
    }
}

和控制器:

import UIKit
import Snapkit

class EditMailController: UIViewController {

    let editView = EditMailView(email1: "123@abc.xyz", email2: "")

    override func viewDidLoad() {
        super.viewDidLoad()


        view.addSubview(editView)

        editView.snp.makeConstraints { (maker) in
            maker.edges.equalToSuperview()
        }

        editView.email1.becomeFirstResponder()

    }
}

此問題已解決。 而是嘗試使用空字符串為email2設置值,例如:

email1Input.text = e1
email2Input.text = e2

當e2是這樣的空字符串時,我忽略了:

email1Input.text = e1
if !e2.isEmpty {
    email2Input.text = e2
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM