Reputation: 765
I am trying to keep a space between an image and the text in a UITextField. I have this:
self.txtUsername.leftViewMode = UITextFieldViewMode.Always
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
let image = UIImage(named: "icoUserName")
imageView.image = image
self.txtUsername.leftView = imageView
This successfully added a image but I want few more gaps between them. How can I achieve this?
Upvotes: 1
Views: 1825
Reputation: 8322
Try add left as below :
let envelopeView = UIImageView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
let image = UIImage(named: "icoUserName")
envelopeView.image = image
var viewLeft: UIView = UIView(frame: CGRectMake(20, 0, 30, 30))// set per your requirement
viewLeft.addSubview(envelopeView)
textField.leftView = viewLeft
textField.leftViewMode = UITextFieldViewModeAlways
Swift 3.0
let envelopeView = UIImageView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
let image = UIImage(named: "icoUserName")
envelopeView.image = image
let viewLeft: UIView = UIView(frame: CGRect(x: 20, y: 0, width: 30, height: 30))// set per your requirement
viewLeft.addSubview(envelopeView)
txtUsername.leftView = viewLeft
txtUsername.leftViewMode = UITextFieldViewMode.always
Upvotes: 3
Reputation: 2896
Swift 3.0
Try add left as below :
let envelopeView = UIImageView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
let image = UIImage(named: "icoUserName")
envelopeView.image = image
let viewLeft: UIView = UIView(frame: CGRect(x: 20, y: 0, width: 30, height: 30))// set per your requirement
viewLeft.addSubview(envelopeView)
txtUsername.leftView = viewLeft
txtUsername.leftViewMode = UITextFieldViewMode.always
Upvotes: 0