UITextField增加内边距

之前的修改方案(不知道从什么时候开始不能用了)

[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了
UITextField增加内边距_第1张图片
效果图.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;
}

你可能感兴趣的:(UITextField增加内边距)