2017-10-29 3 views
2

Ich verwende UIContextualAction, um Swipe zum Löschen der Funktionalität für UITableViewCell zu implementieren. Ich benutze + (instancetype)contextualActionWithStyle:(UIContextualActionStyle)style title:(nullable NSString *)title handler:(UIContextualActionHandler)handler Methode, um UIContextualAction zu konstruieren und später ein Bild mit setImage: Eigenschaft zu setzen.Titel ist nicht sichtbar für UIContextualAction (UITableView streichen, um zu löschen - iOS 11)

Wenn ich jedoch diesen Code ausführen und versuchen, zu löschen, wird nur Bild im Menü angezeigt. Der Titel fehlt. Wenn ich die Eigenschaft setImage auskommentiere, wird der Titel angezeigt. Warum ist das so? Fehle ich etwas in der Implementierung oder ist das ein Fehler mit Apple?

Antwort

4

UIContextualAction unterstützt entweder Text oder Bild. Indem Sie das Bild mit setImage: setzen, entfernen Sie grundsätzlich den Titel, den Sie beim Erstellen des Objekts festgelegt haben. Wenn Sie Text und Bild möchten, müssen Sie Bilder mit eingebettetem Text erstellen.

EDIT

Meine Antwort auf meine eigenen Erfahrungen beruht, leider sind die offiziellen Dokumente für diese bestimmte Klasse sind ohne überhaupt zu helfen. Ich habe auch einen Hinweis auf das Problem gefunden here ("Durch Angabe eines Bildes wird der Titel im Initialisierer nicht angezeigt").

In Ihrem Kommentar sagen Sie, dass, wenn die Höhe> 91px ist, sowohl Titel als auch Bild angezeigt werden. Das entspricht radar (dort steht, dass die Höhe> = 91px sein sollte), also könnte es doch ein Bug sein.

Im Moment sieht es so aus, als ob Sie nur Bilder mit eingebettetem Text erstellen oder die Zellenhöhe auf 91px erhöhen können.

+1

Aber ich habe beobachtet, dass, wenn die Höhe von UITableViewCell mehr als 91 Punkte ist, beide Titel und Bild angezeigt wird. – Advaith

+1

Ja, eingebetteter Text scheint für jetzt die beste Lösung zu sein. Ich mache es jetzt in meinem Code. Vielen Dank für Ihr Feedback. – Advaith

Verwandte Themen