2014-09-23 17 views
10

Ho un UITextField in cui voglio aggiungere un'immagine sul lato sinistro. Lo faccio utilizzando UIImageView che è impostato nella proprietà leftView di UITextField. L'immagine viene ridimensionata in Visualizza immagine alla dimensione corretta. Il problema è che è bastone al confine. Come posso impostare il rientro sinistro dell'immagine. Suppongo che una soluzione sia quella di impostare uno spazio vuoto nella parte sinistra dell'immagine, ma voglio usare il rientro. Inoltre voglio un po 'di rientro dopo l'immagine, quindi il testo non è così vicino ad esso.Come aggiungere un'immagine UIImmagine con rientro in UITextField in iOS 7?

Io uso seguente codice:

[textField setLeftViewMode:UITextFieldViewModeAlways]; 

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

anziché visualizzazione secondaria, posizionare il testo archiviato (senza bordo) su una vista immagine – raki

risposta

1

È necessario sottoclasse UITextField e realizzare in esso

- (CGRect)leftViewRectForBounds:(CGRect)bounds

1

Forse si dovrebbe avere una sottoclasse UITextField e sostituisce

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

Questi cambierà il rect per leftView.

12

È possibile impostare il frame di UIImageview più della UIImage originale e impostare la proprietà contentMode di UIImageview sul centro. Si prega di consultare sotto la risposta.

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;