[英]Padding before TextField Icon
我得到了在textfield
以编程方式启动之前应用图标的方法,但主要关注的是在图标之前应用填充。
因为它只是触摸文本字段的边框。
我像下面这样编程:
override func viewWillAppear(animated: Bool) {
// Email Icon on left of email Text Field
let imageView1 = UIImageView()
let image1 = UIImage(named: "Message.png")
imageView1.image = image1
imageView1.frame = CGRectMake(100, 0, 10, 10)
emailTextField.leftView = imageView1
emailTextField.leftViewMode = UITextFieldViewMode.Always
// Password Icon on left of pass Text Field
let imageView2 = UIImageView()
let image2 = UIImage(named: "Lock.png")
imageView2.image = image2
imageView2.frame = CGRectMake(100, 0, 10, 10)
passwordTextField.leftView = imageView2
passwordTextField.leftViewMode = UITextFieldViewMode.Always
}
但是边框和图标之间的一路空间非常小。
有没有办法在它们之间进行填充?
请让我知道是否有任何方法。
设置leftImage框架,因为它与contenView的x (即)对齐10个点,如果contentView的框架为( 0,0,25,20 ),则将leftImage的框架设置为( 10,0,15,20 )
然后将leftImage作为子视图添加到contentView
现在很简单,将contentView添加为textView的leftView。
let leftImage = UIImageView() let image1 = UIImage(named: "Key") leftImage.image = image1 let contentView = UIView() contentView.addSubview(leftImage) contentView.frame = CGRectMake(0, 0, 25, 20) leftImage.frame = CGRectMake(10, 0, 25, 20) passwordTextField.leftView = contentView passwordTextField.leftViewMode = UITextFieldViewMode.Always
Previops输出:
最终产出:
你可以使用一个宽度为20的UIView
,你可以将leftVeiw
添加到这个视图中。 现在将此视图设置为leftView
。
您可以通过继承UITextField
轻松调整空间
class field: UITextField {
override func leftViewRectForBounds(bounds: CGRect) -> CGRect {
var rect = bounds
rect.origin.x -= 10
return rect
}
override func textRectForBounds(bounds: CGRect) -> CGRect {
var rect = bounds
rect.origin.x -= 10
return rect
}
}
您只需在一行中执行此操作即可
textfield.layer.sublayerTransform = CATransform3DMakeTranslation(10.0f, 0.0f, 0.0f);
类视图控制器:UIViewController {
@IBOutlet weak var passTextfield: UITextField!
@IBOutlet weak var emailTextfield: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let emailImage = UIImage(named:"email")
addLeftImageTo(txtfield: emailTextfield, andImage:emailImage!)
let passwordImage = UIImage(named:"password")
addLeftImageTo(txtfield: passTextfield, andImage:passwordImage!)
}
func addLeftImageTo(txtfield:UITextField,andImage img:UIImage) {
let leftImageView=UIImageView(frame:CGRect(x:10, y: 0, width: 25, height: 20))
leftImageView.image=img
let view = UIView(frame: CGRect(x: 0, y: 0, width: 35, height: 20))
view.addSubview(leftImageView)
txtfield.leftView=view
txtfield.leftViewMode = .always
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.