之前的修改方案(不知道从什么时候开始不能用了)
[self.yourTextField setValue:[NSNumber numberWithInt:5] forKey:@"paddingTop"];
[self.yourTextField setValue:[NSNumber numberWithInt:5] forKey:@"paddingLeft"];
[self.yourTextField setValue:[NSNumber numberWithInt:5] forKey:@"paddingBottom"];
[self.yourTextField setValue:[NSNumber numberWithInt:5] forKey:@"paddingRight"];
为了实现这种效果,就只能自定义UITextField了效果图.png
重写系统方法
- (CGRect)textRectForBounds:(CGRect)bounds {
CGRect superRect = [super textRectForBounds:bounds];
return CGRectMake(superRect.origin.x + 10, superRect.origin.y, superRect.size.width - 10*2, superRect.size.height);
}
- (CGRect)editingRectForBounds:(CGRect)bounds {
return [self textRectForBounds:bounds];
}
- (CGRect)leftViewRectForBounds:(CGRect)bounds {
CGRect rect = [super leftViewRectForBounds:bounds];
rect.origin.x += 10;
return rect;
}
- (CGRect)rightViewRectForBounds:(CGRect)bounds {
CGRect rect = [super rightViewRectForBounds:bounds];
rect.origin.x -= 10;
return rect;
}