我试图在作为 subview 添加到我的 UITextfield 的 rightView UIImages 之间进行更改。当用户点击图标时,它应该显示或隐藏插入的密码,并根据状态更改 UIImage。
我如何编辑下面的代码来实现此目的?
代码:
// Show eye icon to show the password
func textFieldDidChange() {
if passwordField.text != "" {
let leftImageView = UIImageView()
leftImageView.image = UIImage(named: "view_password")
leftImageView.contentMode = .scaleAspectFit
let leftView = UIView()
leftView.addSubview(leftImageView)
leftView.frame = CGRect(x: 0, y: 0, width: 40, height: 30)
leftImageView.frame = CGRect(x: 10, y: 10, width: 20, height: 12)
passwordField.rightViewMode = .whileEditing
passwordField.rightView = leftView
let tapgesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.togglePasswordSecurity))
leftImageView.isUserInteractionEnabled = true
leftImageView.addGestureRecognizer(tapgesture)
}else{
passwordField.rightViewMode = .never
}
}
func togglePasswordSecurity(imageView: UIImageView) {
if passwordField.isSecureTextEntry == false {
// change left UIImage to hide_password
passwordField.isSecureTextEntry = true
}else{
// change left UIImage to view_password
passwordField.isSecureTextEntry = false
}
}
非常感谢!
最佳答案
您是否尝试过为每张图片添加标签? 例如:
let leftImageView = UIImageView()
leftImageView.image = UIImage(named: "view_password")
leftImageView.contentMode = .scaleAspectFit
leftImageView.tag = 1
然后,要更改该图像,您可以编写:
let myImage = UIView(withTag: 1) as! UIImageView
myImage.image = ...
编辑: 要在 2 个图像之间切换,只需更改以下内容: functogglePasswordSecurity(imageView: UIImageView) {
if passwordField.isSecureTextEntry == false {
let myImage = UIView(withTag: 1) as! UIImageView
myImage.image = YOUR_IMAGE_1
// change left UIImage to hide_password
passwordField.isSecureTextEntry = true
}else{
let myImage = UIView(withTag: 1) as! UIImageView
myImage.image = YOUR_IMAGE_2
// change left UIImage to view_password
passwordField.isSecureTextEntry = false
}
}
关于ios - 更改右侧图标图像 UITextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40981152/