Text inset for UITextField?
Overriding -textRectForBounds:
will only change the inset of the placeholder text. To change the inset of the editable text, you need to also override -editingRectForBounds:
// placeholder position- (CGRect)textRectForBounds:(CGRect)bounds { return CGRectInset(bounds, 10, 10);}// text position- (CGRect)editingRectForBounds:(CGRect)bounds { return CGRectInset(bounds, 10, 10);}
I was able to do it through:
myTextField.layer.sublayerTransform = CATransform3DMakeTranslation(5, 0, 0);
Of course remember to import QuartzCore and also add the Framework to your project.
If you need just a left margin, you can try this:
UItextField *textField = [[UITextField alloc] initWithFrame:...];UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, textField.frame.size.height)];leftView.backgroundColor = textField.backgroundColor;textField.leftView = leftView;textField.leftViewMode = UITextFieldViewModeAlways;
It works for me. I hope this may help.