Ответ 1
Вам нужен подкласс UITextField и реализовать в нем
- (CGRect)leftViewRectForBounds:(CGRect)bounds
У меня есть UITextField
, в котором я хочу добавить изображение с левой стороны. Я делаю это, используя UIImageView
, который установлен в leftView
свойство UITextField
. Изображение изменено в Image View до нужного размера. Проблема в том, что она придерживается границы. Как установить левый отступ изображения. Я полагаю, что одним из решений является установка пробела в левой части изображения, но я хочу использовать отступ. Также я хочу, чтобы после изображения был отступ, поэтому текст не так близок к нему.
Я использую следующий код:
[textField setLeftViewMode:UITextFieldViewModeAlways];
UIImageView *imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 37, 20)];
imageView1.image = [UIImage imageNamed:@"custom_image"];
textField.leftView = imageView1;
Вам нужен подкласс UITextField и реализовать в нем
- (CGRect)leftViewRectForBounds:(CGRect)bounds
Вы можете установить кадр UIImageview больше, чем оригинальный UIImage, и установить свойство UIImageview contentMode в центр. См. Ниже ответ.
UIImageView *imgSearch=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 32, 28)]; // Set frame as per space required around icon
[imgSearch setImage:[UIImage imageNamed:@"search.png"]];
[imgSearch setContentMode:UIViewContentModeCenter];// Set content mode centre
self.tfSearch.leftView=imgSearch;
self.tfSearch.leftViewMode=UITextFieldViewModeAlways;
Возможно, у вас должен быть подкласс UITextField и переопределяет
- (CGRect)leftViewRectForBounds:(CGRect)bounds;
- (void)drawTextInRect:(CGRect)rect;
Они изменят прямоугольник для leftView.