[英]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.