Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UITextField padding

Im having trouble creating padding for leftView property of UITextField. The code I have now creates padding for the text which is nice, but I need it for the imageView.

UITextField Subclass method:

  • Notice x position of paddingView frame doesn't extend view to the right like expected.

    func setLeftView(imageView: UIImageView, withPadding padding: CGFloat) {
    
    let height = imageView.frame.height
    let width = imageView.frame.width + padding
    
    let paddingView = UIView(frame: CGRect(x: 36, y: 0, width: width, height: height))
    paddingView.addSubview(imageView)
    self.leftView = paddingView
    self.leftViewMode = .always
    }
    

Result:

enter image description here


1 Answers

You need to make changes in your function, just set frame of imageView and set paddingView's X position to 0

func setLeftView(imageView: UIImageView, withPadding padding: CGFloat) {

let height = imageView.frame.height
let width = imageView.frame.width + padding

// Set  x position to 0
let paddingView = UIView(frame: CGRect(x: 0, y: 0, width: width, height: height))

/// You need to set frame of imageView so put this line
imageView.frame = CGRect(x: padding, y: 0, width: imageView.frame.width, height: height)

paddingView.addSubview(imageView)
self.leftView = paddingView
self.leftViewMode = .always
}
like image 106
iPatel Avatar answered Feb 02 '26 12:02

iPatel



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!