Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UITextfield leftView/rightView padding on iOS7

The leftView and rightView views of an UITextField on iOS7 are really close to the textfield border.

How may I add some (horizontal) padding to those items?

I tried modifying the frame, but did not work

uint padding = 10;//padding for iOS7 UIImageView * iconImageView = [[UIImageView alloc] initWithImage:iconImage];     iconImageView.frame = CGRectMake(0 + padding, 0, 16, 16); textField.leftView = iconImageView; 

Please, note that I'm not interested in adding padding to the textfield's text, like this Set padding for UITextField with UITextBorderStyleNone

like image 869
subzero Avatar asked Oct 14 '13 23:10

subzero


Video Answer


1 Answers

A much simpler solution, which takes advantage of contentMode:

    arrow = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"down_arrow"]];     arrow.frame = CGRectMake(0.0, 0.0, arrow.image.size.width+10.0, arrow.image.size.height);     arrow.contentMode = UIViewContentModeCenter;      textField.rightView = arrow;     textField.rightViewMode = UITextFieldViewModeAlways; 

In Swift 3,

    let arrow = UIImageView(image: UIImage(named: "arrowDrop"))     if let size = arrow.image?.size {         arrow.frame = CGRect(x: 0.0, y: 0.0, width: size.width + 10.0, height: size.height)     }     arrow.contentMode = UIViewContentMode.center     self.textField.rightView = arrow     self.textField.rightViewMode = UITextFieldViewMode.always 
like image 183
TTillage Avatar answered Oct 28 '22 04:10

TTillage