选择时如何更改uitextfield边框
How to change uitextfield border when selected
当我的 uitextfield 被选中或开始在其中输入一些文本时,如何更改它的边框
我试过了,但它不起作用检查代码
@IBOutlet weak var email: UITextField!
@IBOutlet weak var password: UITextField!
@IBOutlet weak var userName: UITextField!
这里有什么问题没有错误但什么也没发生
func fieldLayout () {
if (self.password.isSelected == true) {
self.password.layer.borderWidth = 4
self.password.layer.borderColor = #colorLiteral(red: 0, green: 0.8362106681, blue: 1, alpha: 1)
}
if (self.email.isSelected == true) {
self.email.layer.borderWidth = 5
self.email.layer.borderColor = #colorLiteral(red: 0, green: 0.8362106681, blue: 1, alpha: 1)
}
if (self.userName.isSelected == true) {
self.userName.layer.borderWidth = 5
self.userName.layer.borderColor = #colorLiteral(red: 0, green: 0.8362106681, blue: 1, alpha: 1)
}
}
如果您想在用户开始输入时突出显示 TextField,我建议您使用 UITextField
委托方法 textFieldDidBeginEditing
在用户开始输入时进行处理。
func textFieldDidBeginEditing(_ textField: UITextField) {
if textField == email {
textField.layer.borderWidth = 4
textField.layer.borderColor = // your color
} else if ...
}
您还可以使用 textFieldDidEndEditing
委托方法在用户完成输入时进行处理
func textFieldDidEndEditing(_ textField: UITextField) {
textField.layer.borderWidth = // default width
textField.layer.borderColor = // default color
}
因此,如果您想使用这些方法,请不要忘记在 viewDidLoad
中设置您的 TextFields 的 delegate
属性,例如
email.delegate = self
password.delegate = self
userName.delegate = self
也不要忘记实施 UITextFieldDelegate
协议
class ViewController: UIViewController, UITextFieldDelegate
你可以这样做:
func textFieldDidBeginEditing(_ textField: UITextField) {
// textField.borderStyle = .line
textField.layer.borderColor = UIColor.red.cgColor //your color
textField.layer.borderWidth = 2.0
}
func textFieldDidEndEditing(_ textField: UITextField) {
textField.layer.borderWidth = 0.0
}
您可以检查 textField 标签并相应地设置颜色。
当我的 uitextfield 被选中或开始在其中输入一些文本时,如何更改它的边框
我试过了,但它不起作用检查代码
@IBOutlet weak var email: UITextField!
@IBOutlet weak var password: UITextField!
@IBOutlet weak var userName: UITextField!
这里有什么问题没有错误但什么也没发生
func fieldLayout () {
if (self.password.isSelected == true) {
self.password.layer.borderWidth = 4
self.password.layer.borderColor = #colorLiteral(red: 0, green: 0.8362106681, blue: 1, alpha: 1)
}
if (self.email.isSelected == true) {
self.email.layer.borderWidth = 5
self.email.layer.borderColor = #colorLiteral(red: 0, green: 0.8362106681, blue: 1, alpha: 1)
}
if (self.userName.isSelected == true) {
self.userName.layer.borderWidth = 5
self.userName.layer.borderColor = #colorLiteral(red: 0, green: 0.8362106681, blue: 1, alpha: 1)
}
}
如果您想在用户开始输入时突出显示 TextField,我建议您使用 UITextField
委托方法 textFieldDidBeginEditing
在用户开始输入时进行处理。
func textFieldDidBeginEditing(_ textField: UITextField) {
if textField == email {
textField.layer.borderWidth = 4
textField.layer.borderColor = // your color
} else if ...
}
您还可以使用 textFieldDidEndEditing
委托方法在用户完成输入时进行处理
func textFieldDidEndEditing(_ textField: UITextField) {
textField.layer.borderWidth = // default width
textField.layer.borderColor = // default color
}
因此,如果您想使用这些方法,请不要忘记在 viewDidLoad
中设置您的 TextFields 的 delegate
属性,例如
email.delegate = self
password.delegate = self
userName.delegate = self
也不要忘记实施 UITextFieldDelegate
协议
class ViewController: UIViewController, UITextFieldDelegate
你可以这样做:
func textFieldDidBeginEditing(_ textField: UITextField) {
// textField.borderStyle = .line
textField.layer.borderColor = UIColor.red.cgColor //your color
textField.layer.borderWidth = 2.0
}
func textFieldDidEndEditing(_ textField: UITextField) {
textField.layer.borderWidth = 0.0
}
您可以检查 textField 标签并相应地设置颜色。