2016-05-26 5 views
7

Ich möchte eine cell Swipe-Aktion wie Mail-App machen.UITableViewRowAction mit Bild anstelle von Titel

enter image description here

I gesetzt UIImage zu backgroundColor von Zeilen Aktion.

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

Aber ich bekomme mein Bild Seite an Seite auf dem Hintergrund wiederholt. so was. enter image description here

Ist das Bildgrößenproblem? Könnte mir sagen, wie man es repariert, oder eine andere Möglichkeit, es zu tun?

+0

Können Sie den Code bei cellForRowAtIndexPath posten? – ebby94

+0

können Sie versuchen, imageView.contentMode = UIViewContentModeScaleAspectFit; – user3300864

+0

Beantwortet hier -https: //stackoverflow.com/questions/44771778/how-to-add-image-in-passableviewrowaction/45301272#45301272 – Jack

Antwort

12

Ja, das ist ein Bildgrößenproblem. Auch ich hatte eine ähnliche Anforderung und stand vor dem gleichen Problem. In diesem Fall, wenn Sie verwenden,

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

Selbst wenn Sie die imageView.contentMode einzustellen:

UIViewContentModeScaleAspectFit 
UIViewContentModeScaleToFill 
UIViewContentModeScaleAspectFill 

Wenn die Größe des Bildes Sie verwenden, und, und die Größe der Schaltfläche auf der Zelle nicht übereinstimmen, wird das Bild nicht so gestreckt, dass es die gesamte Schaltfläche ausfüllt, sondern das Bildmuster wiederholt sich nur so lange, bis der gesamte Bereich der Schaltfläche verwendet wird. Dies liegt daran, dass Sie die 'backgroundColor' und nicht die tatsächliche 'backgroundImage' einstellen. 'backgroundColor' im Gegensatz zu 'backgroundImage' entspricht nicht dem UIContentMode der Schaltfläche.

Sie müssen also ein Bild erstellen, das genau der Größe des Buttons entspricht. Dies ist nicht möglich, wenn Ihre Zelle eine dynamische Höhe hat (die Höhe wird zur Laufzeit entsprechend Ihrem Inhalt bestimmt).

+0

danke !! es ist sehr klar und hilfreich !! – Ctf

Verwandte Themen