2014-09-23 8 views
10

Mam UITextField, w którym chcę dodać obraz po lewej stronie. Robię to za pomocą UIImageView, który jest ustawiony w leftView właściwości UITextField. Rozmiar obrazu zostanie zmieniony w widoku obrazu na prawidłowy rozmiar. Problem polega na tym, że trzyma się granicy. Jak ustawić lewe wcięcie obrazu. Przypuszczam, że jednym z rozwiązań jest ustawienie pustej przestrzeni po lewej stronie obrazu, ale chcę użyć wcięcia. Również chcę trochę wcięcia po obrazie, więc tekst nie jest tak blisko niego.Jak dodać obraz UIImage z wcięciem w UITextField w iOS 7?

używam następujący kod:

[textField setLeftViewMode:UITextFieldViewModeAlways]; 

UIImageView *imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 37, 20)]; 
imageView1.image = [UIImage imageNamed:@"custom_image"]; 
textField.leftView = imageView1; 
+0

zamiast podświetlać, umieścić tekst (bez ramki) w widoku obrazu – raki

Odpowiedz

1

Trzeba podklasę UITextField i realizować w nim

- (CGRect)leftViewRectForBounds:(CGRect)bounds

1

Może powinieneś mieć podklasę UITextField i nadpisuje

- (CGRect)leftViewRectForBounds:(CGRect)bounds; 
- (void)drawTextInRect:(CGRect)rect; 

These zmieni recta dla leftView.

12

Można ustawić ramkę UIImageview bardziej niż oryginalną UIImage i ustawić właściwość contentMode UIImageview na środek. Proszę odnieść się poniżej odpowiedzi.

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; 
Powiązane problemy