Hallo,
ich will in meinem tableview automatisch zum Boden scrollen wenn dieser angezeigt wird. Also zur letzten Cell, wie bei WhatsApp oder Nachrichten(SMS) App. Die Cells sind dynamisch:
Versucht habe ich es mit den beiden Möglichkeiten:
Alles anzeigen
Beides funktioniert bedingt. Möglichkeit 1. ist schonmal komisch wie man sieht. Funktioniert nur mit doppeltem Aufruf von scrollToRowAtIndexPath und einem delay. Möglichkeit 2 funktioniert da besser, hat aber Probleme mit cells die größer als die vorgegebene höhe (estimatedRowHeight) von 80 sind.
Das 2. Problem was bei beiden Auftritt, wenn ich zum Boden Scrolle nach dem Aufrufen des Tableviews und dann händisch nach oben scrolle (um nachrichten anzuschauen die weiter oben liegen) gibt es bei jeder cell einen kleinen Sprung nach unten ( ca. 5 Pixel) und dann gehts weiter. Also es "ruckelt" beim scrollen. Wenn ich dann bis oben einmal durch bin und das ganze wiederhole gibts keine Probleme mehr.
Die Custom Cell besteht aus 2 Views, ein paar Labels und ein imageview. Aber selbst wenn ich den Inhalt lösche tritt der Fehler auf, sollte also nichts mit der Performance zutun haben.
Hat hier jemand n bisschen Code der das macht was ich will (eigentlich wie bei jeder messenger app die letzte message anzeigen, welche sich unten befindet).
ich will in meinem tableview automatisch zum Boden scrollen wenn dieser angezeigt wird. Also zur letzten Cell, wie bei WhatsApp oder Nachrichten(SMS) App. Die Cells sind dynamisch:
Versucht habe ich es mit den beiden Möglichkeiten:
Quellcode
- // möglichkeit 1
- let indexPath = NSIndexPath(forRow: messagesArray - 1, inSection: 0)
- self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: UITableViewScrollPosition.Bottom, animated: false)
- let delay = 0.1 * Double(NSEC_PER_SEC)
- let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
- dispatch_after(time, dispatch_get_main_queue(), {
- self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: UITableViewScrollPosition.Bottom, animated: true)
- })
- // möglichkeit 2
- if self.tableView.contentSize.height > self.tableView.frame.size.height {
- let offset = CGPoint(x: 0, y: self.tableView.contentSize.height - self.tableView.frame.size.height)
- self.tableView.setContentOffset(offset, animated: false)
- }
Das 2. Problem was bei beiden Auftritt, wenn ich zum Boden Scrolle nach dem Aufrufen des Tableviews und dann händisch nach oben scrolle (um nachrichten anzuschauen die weiter oben liegen) gibt es bei jeder cell einen kleinen Sprung nach unten ( ca. 5 Pixel) und dann gehts weiter. Also es "ruckelt" beim scrollen. Wenn ich dann bis oben einmal durch bin und das ganze wiederhole gibts keine Probleme mehr.
Die Custom Cell besteht aus 2 Views, ein paar Labels und ein imageview. Aber selbst wenn ich den Inhalt lösche tritt der Fehler auf, sollte also nichts mit der Performance zutun haben.
Hat hier jemand n bisschen Code der das macht was ich will (eigentlich wie bei jeder messenger app die letzte message anzeigen, welche sich unten befindet).