Я видел два разных решения:
- добавить пустое
UIView
как leftView
свойство U ITextView
- подкласс UITextField и переопределить методы
textRectForBounds:
editingRectForBounds:
- просто вернуть рамку с наложенными вставками
ИМХО вторая более элегантная.
Пример: .h:
#import <UIKit/UIKit.h>
@interface BlackTextField : UITextField
@property (nonatomic, assign) CGFloat paddingRight, paddingTop, paddingLeft, paddingBottom;
@end
м:
#import "BlackTextField.h"
#import <QuartzCore/QuartzCore.h>
@implementation BlackTextField
@synthesize paddingTop, paddingBottom, paddingLeft, paddingRight;
- (id)initWithCoder:(NSCoder *)coder {
self = [super initWithCoder:coder];
if (self) {
self.paddingRight = 10;
self.paddingLeft = 10;
self.paddingTop = 5;
self.paddingBottom = 5;
}
return self;
}
- (CGRect)textRectForBounds:(CGRect)bounds
{
return CGRectMake(bounds.origin.x + self.paddingLeft, bounds.origin.y + self.paddingTop, bounds.size.width - self.paddingLeft - self.paddingRight, bounds.size.height - self.paddingTop - self.paddingBottom);
}
- (CGRect)editingRectForBounds:(CGRect)bounds
{
return [self textRectForBounds:bounds];
}
@end