【发布时间】:2017-12-24 12:04:33
【问题描述】:
【问题讨论】:
-
你的问题是什么?
-
@Anil 你想自定义 UITextField 或 UITextView。
【问题讨论】:
这样做...
UIImageView,设置所需图片和背景颜色UITextField,并在界面构建器(故事板)中将边框样式设置为“无边框样式”【讨论】:
添加UITextField
将子视图添加为 imageView
设置 UITextField
下面的示例代码:
func addTextField() {
let txtUserName = UITextField(frame: CGRect(x: 30, y: 70, width: 320, height: 45))
let txtPassword = UITextField(frame: CGRect(x: 30, y: 140, width: 320, height: 45))
txtUserName.backgroundColor = UIColor.black
txtPassword.backgroundColor = UIColor.black
txtUserName.alpha = 0.35
txtPassword.alpha = 0.35
let imgUser = UIImageView(frame: CGRect(x: 5, y: 5, width: 35, height: 35))
let imgKey = UIImageView(frame: CGRect(x: 5, y: 5, width: 35, height: 35))
let imgEye = UIImageView(frame: CGRect(x: txtPassword.frame.size.width - 40, y: 5, width: 35, height: 35))
imgUser.image = UIImage(named: "user")
imgKey.image = UIImage(named: "key")
imgEye.image = UIImage(named: "eye")
txtUserName.addSubview(imgUser)
txtPassword.addSubview(imgKey)
txtPassword.addSubview(imgEye)
view.addSubview(txtUserName)
view.addSubview(txtPassword)
}
【讨论】:
导入 UIKit
类视图控制器:UIViewController {
@IBOutlet weak var txtpassword: UITextField!
@IBOutlet weak var txtUserName: UITextField!
@IBOutlet weak var txtView: UITextView! //your textView
override func viewDidLoad() {
super.viewDidLoad()
//navigationBarColor()
setTextFieldSpace( textField :txtUserName)
setTextFieldSpace( textField :txtpassword)
//textField border
txtpassword.borderStyle = .none
txtUserName.borderStyle = .none
}
//MARK: - Button Action
// password show hide
@IBAction func btnShowPasswordClick(_ sender: UIButton) {
if txtpassword.isSecureTextEntry{
txtpassword.isSecureTextEntry = false
}else{
txtpassword.isSecureTextEntry = true
}
}
//for set space in left side of textField
func setTextFieldSpace( textField :UITextField){
let lblSpace = UILabel()
lblSpace.frame = CGRect.init(x: 0, y: 0, width: 5, height: 5)
lblSpace.backgroundColor = .clear
textField.leftView = lblSpace
textField.leftViewMode = .always
textField.contentVerticalAlignment = .center
}
}
//看看这个输出
【讨论】: