Ich habe Zweifel: Gibt es eine Möglichkeit, ein tableView
Scrolling abzufangen, um eine Aktion hinzuzufügen? Zum Beispiel ist mein prototype cell
Hintergrund rot, berühre innerhalb einer Zelle seine Hintergrundfarbe blau und scrolle die tableView
Hintergrundfarbe zurück rot.
Ist es möglich, das zu tun?!
Vielen Dank im Voraus.
UITableView
erbt von UIScrollView
und UITableViewDelegate
erweitert UIScrollViewDelegate
.
Besonders interessiert Sie vielleicht scrollViewDidScroll
Methode. Fügen Sie in Ihrer UITableViewDelegate
-Implementierung die folgende Methode hinzu:
Es ist besser, eine Variable um z.B. var isBackgroundColorRed: Bool = true
Und ein anderer für die Bildlaufposition y, wenn Sie die Hintergrundfarbe auf blau setzen. z.B.
%Vor%Wenn Sie die Hintergrundfarbe auf blau setzen, stellen Sie den y-Offset auf den Inhalt von View.origin.y ein.
Dann im Delegaten für die Tabellenansicht (welche Unterklassen UIScrollView)
%Vor%Fügen Sie dies Ihrem Projekt hinzu und aktualisieren Sie Ihren Bridging-Header. UIColor-CrossFade
Diese Technik wird Ihnen eine schöne UX anstelle einer plötzlichen Hintergrundänderung geben.
CellForRow
ist eine Möglichkeit, das Scrollen zu erkennen, wodurch Sie auch indexPath.row
der nächsten Zelle erhalten, die in die Ansicht eintritt. Wenn der Benutzer eine so kurze Strecke scrollt, dass eine neue oder recycelte Zelle nicht konfiguriert ist, wird das Ziehen nicht erkannt. Aber auch mit eingebauten Methoden , wie zB scrollViewWillBeginDragging
, wird das Scrollen über kurze Strecken nicht erkannt .
cellForRowAtIndexPath
wird beim Scrollen der TableView wiederholt aufgerufen, es sei denn, Sie haben sehr wenige Zeilen.
Tags und Links uitableview ios swift action cell