2016-05-26 15 views
7

Vorrei eseguire un'azione di scorrimento cell come l'app di posta.UITableViewRowAction con immagine al posto del titolo

enter image description here

ho impostato UIImage a backgroundColor dell'azione fila.

action.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"remove"]]; 

Ma ho la mia immagine ripetuta fianco a fianco sullo sfondo. come questo. enter image description here

Il problema di dimensione dell'immagine è? Potrebbe dirmi come aggiustarlo o un altro modo per farlo?

+0

Puoi pubblicare il codice su cellForRowAtIndexPath? – ebby94

+0

puoi provare a fare imageView.contentMode = UIViewContentModeScaleAspectFit; – user3300864

+0

Ho risposto qui -https: //stackoverflow.com/questions/44771778/how-to-add-image-in-uitableviewrowaction/45301272#45301272 – Jack

risposta

12

Sì, questo è un problema di dimensione dell'immagine. Anche io avevo un requisito simile e ho affrontato lo stesso problema. In questo caso, quando si utilizza,

action.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"remove"]]; 

Anche se si imposta l'imageView.contentMode a:

UIViewContentModeScaleAspectFit 
UIViewContentModeScaleToFill 
UIViewContentModeScaleAspectFill 

Se la dimensione dell'immagine che si sta utilizzando e e la dimensione del pulsante sul la cella non corrisponde, l'immagine non si allungherà per riempire l'intero pulsante, piuttosto il modello dell'immagine si ripeterà solo fino a quando non verrà utilizzata l'intera area del pulsante. Questo perché stai impostando "backgroundColor" e non l'attuale "backgroundImage". 'backgroundColor' a differenza di 'backgroundImage' non aderisce a UIContentMode del pulsante.

Quindi, ciò che dovrete fare è creare un'immagine che sia esattamente uguale alla dimensione del pulsante. Questo non è possibile se la tua cella ha un'altezza dinamica (altezza determinata in fase di esecuzione in base al tuo contenuto).

+0

grazie !! è molto chiaro e utile !! – Ctf