Ich habe klassische TableView, wo Sie Element löschen können, wenn Sie streichen und dann auf die Schaltfläche klicken. Ich weiß, wie man einen benutzerdefinierten Hintergrund für die Zelle einstellt, aber ich kann nicht finden, wie ich benutzerdefinierte Schrift und Farbe dafür einstellen kann.
Danke für Ihre Hilfe!
%Vor% Nun, der einzige Weg, den ich gefunden habe, um eine benutzerdefinierte Schriftart zu setzen, ist die Verwendung der appearanceWhenContainedIn
Methode des UIAppearance
Protokolls. Diese Methode ist in Swift noch nicht verfügbar, also müssen Sie es in Objective-C machen.
Ich habe eine Klassenmethode in einer Objective-C-Klassenklasse erstellt, um sie einzurichten:
%Vor%Das funktioniert, aber es ist definitiv nicht ideal. Wenn Sie UIView nicht in die Eingrenzungshierarchie aufnehmen, wirkt sich dies auch auf den Offenlegungsindikator aus (ich wusste nicht einmal, dass der Offenlegungsindikator eine UIButton-Unterklasse ist). Wenn Sie eine UIButton in Ihrer Zelle haben, die sich in einer Unteransicht in der Zelle befindet, wird diese Schaltfläche ebenfalls von dieser Lösung betroffen.
In Anbetracht der Komplikationen ist es möglicherweise besser, nur eine der besser anpassbaren Open-Source-Bibliotheken für Tabellenzellen-Swipe-Optionen zu verwenden.
Wenn Sie die Debug-Ansichtshierarchie von XCode verwenden, um zu sehen, was in UITableView passiert, wenn die Swipe-Schaltflächen aktiv sind, sehen Sie, dass UITableViewRowAction-Elemente in die Schaltfläche _UITableViewCellActionButton
in UITableViewCellDeleteConfirmationView
übersetzt werden. Eine Möglichkeit, die Eigenschaften der Schaltfläche zu ändern, besteht darin, sie abzufangen, wenn sie zu UITableViewCell
hinzugefügt wird. Schreiben Sie in Ihrer UITableViewCell
abgeleitete Klasse etwas wie folgt:
Ich habe klassische TableView, wo Sie Element löschen können, wenn Sie streichen und dann auf die Schaltfläche klicken. Ich weiß, wie man einen benutzerdefinierten Hintergrund für die Zelle einstellt, aber ich kann nicht finden, wie ich benutzerdefinierte Schrift und Farbe dafür einstellen kann.
Danke für Ihre Hilfe!
%Vor%Dies scheint zu funktionieren, zumindest für die Einstellung der Schriftfarbe:
%Vor%Wenn Sie die Debug-Ansichtshierarchie von XCode verwenden, um zu sehen, was in UITableView passiert, wenn die Swipe-Schaltflächen aktiv sind, sehen Sie, dass UITableViewRowAction-Elemente in die Schaltfläche %code% in %code% übersetzt werden. Eine Möglichkeit, die Eigenschaften der Schaltfläche zu ändern, besteht darin, sie abzufangen, wenn sie zu %code% hinzugefügt wird. Schreiben Sie in Ihrer %code% abgeleitete Klasse etwas wie folgt:
%Vor%Hier ist ein Swift Code, der hilfreich sein könnte:
%Vor%Damit werden alle Schaltflächen in Ihrer Anwendung bearbeitet.
Ich denke, dass Sie diese Methode verwenden können, um die Darstellung nur in einem (oder mehreren, Sie können es definieren) Viewcontrollern zu ändern:
%Vor%Ich hoffe, das hat geholfen.
Ich möchte meine Lösung für ObjC teilen, das ist nur ein Trick, funktioniert aber wie erwartet für mich.
%Vor%%code% dient nur dazu, Hex-Strings in UIColor zu konvertieren.
Nun, der einzige Weg, den ich gefunden habe, um eine benutzerdefinierte Schriftart zu setzen, ist die Verwendung der %code% Methode des %code% Protokolls. Diese Methode ist in Swift noch nicht verfügbar, also müssen Sie es in Objective-C machen.
Ich habe eine Klassenmethode in einer Objective-C-Klassenklasse erstellt, um sie einzurichten:
%Vor%Das funktioniert, aber es ist definitiv nicht ideal. Wenn Sie UIView nicht in die Eingrenzungshierarchie aufnehmen, wirkt sich dies auch auf den Offenlegungsindikator aus (ich wusste nicht einmal, dass der Offenlegungsindikator eine UIButton-Unterklasse ist). Wenn Sie eine UIButton in Ihrer Zelle haben, die sich in einer Unteransicht in der Zelle befindet, wird diese Schaltfläche ebenfalls von dieser Lösung betroffen.
In Anbetracht der Komplikationen ist es möglicherweise besser, nur eine der besser anpassbaren Open-Source-Bibliotheken für Tabellenzellen-Swipe-Optionen zu verwenden.
Tags und Links iphone uitableview ios swift uitableviewrowaction