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:

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
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With