iron
iron

Reputation: 765

How to create space between image and textfield in iOS

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

Answers (2)

KKRocks
KKRocks

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

Harshil Kotecha
Harshil Kotecha

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

Related Questions