Ich habe eine Ansicht, die unter einem Navigationscontroller angezeigt wird. Die Ansicht enthält eine Unteransicht im oberen Bereich und eine Tabellenansicht im unteren Bereich. Die Tabelle enthält möglicherweise Zeilen, die basierend auf Daten über die sichtbare Höhe hinausgehen. Wenn ich Zeilen unter der letzten sichtbaren Zeile habe, wenn ich die Ansicht nach oben scrolle, springt sie zurück, sie bleibt nicht dort. Gibt es eine Möglichkeit, dass es bleibt? Ich habe versucht, die Elternansicht eine Bildlaufansicht und das hat nicht geholfen. Meine Sicht ist von einem XIB.Tableview Scrolling springt zurück und verbirgt die unteren Zellen
Antwort
Klingt wie die Größe Ihres UITableView ist etwas größer als die Fläche auf dem iPhone-Bildschirm verfügbar. Dies könnte daran liegen, dass die Ansicht die Größe der Navigationsleiste nicht berücksichtigt hat. Als Test gehen Sie in den Interface Builder und machen Sie das UITableView viel kleiner, etwa die halbe Größe, so dass Sie oben und unten deutlich sehen können. Schau, ob du immer noch das gleiche Prellen hast.
Wenn die Größen korrekt sind, benötigt UITableView kein UIScrollView, um wie erwartet zu funktionieren. In der Tat, es gäbe nur wenige Gründe, von denen ich mir jetzt denken kann (abgesehen von horizontalen Scroll-Bildern), dass Sie eine UITableView in einem UIScrollView haben möchten.
Setzen Sie in der obersten Ebene des View-Controllers in den Einstellungen für "Simulierte Metriken" die obere Leiste und/oder die untere Leiste (je nachdem, was in Ihrem View Controller angezeigt wird) auf "undurchsichtig". Ändern Sie dann die Größe der Tabellenansicht so, dass sie zwischen die Navigationsleiste und die Symbolleiste/Tableiste passt. Schließlich fügen zwei Einschränkungen:
- Top Space Top Leitfaden für das Layout
- Bottom Raum Bottom Leitfaden für das Layout
für mich sehr gut funktioniert, unabhängig von der Ausrichtung.
Wenn Sie nicht Storyboard verwenden, könnten Sie versuchen, die folgende (swift) Code:
tableView.contentInset = UIEdgeInsetsMake((self.navigationController!.navigationBar.frame.origin.y + self.navigationController!.navigationBar.frame.size.height), 0, 0, 0)
self.view.addSubview(tableView)
Wenn Sie eine Symbolleiste oder (wenn Sie einen TabBarController verwenden), werden Sie die neu einstellen müssen unten auch:
tableView.contentInset = UIEdgeInsetsMake((self.navigationController!.navigationBar.frame.origin.y + self.navigationController!.navigationBar.frame.size.height), 0, 0, 0)
self.view.addSubview(tableView)
Bitte beachten Sie, dass dies ein einfacher und "grober" Code ist. Sie können es bei Bedarf schöner machen :)
- 1. ios8 UITableView Scrolling springt zurück beim Scrollen
- 2. Sticky Navigation mit Smooth Scrolling springt
- 3. TableView zeigt leere Zellen
- 4. UICollectionView Scrolling ändert die ausgewählten Zellen
- 5. Auto Resize TableView Zellen
- 6. Scrolling zurück durch die RStudio Konsole
- 7. UIScrollView springt zurück, wenn loslassen
- 8. Zurück Bar Taste Segue verbirgt Symbolleiste
- 9. Keyboard Versteckt Tableview Zellen mit Textfeldern
- 10. Bestücken von Tableview-Zellen in iOS 6
- 11. iOS - fügen Sie horizontale Polsterung Tableview Zellen
- 12. Iphone Zellen mit Textfeld in TableView
- 13. Greife auf alle Zellen in TableView zu
- 14. indexPath von Zellen in gruppierten tableview
- 15. Deaktivieren Sie bestimmte Zellen in TableView
- 16. iOS 8 Autozellenhöhe - didSelectRowAtIndexPath bewirkt, dass UItableview nach oben springt
- 17. Weitere Zellen am unteren Rand von UICollectionView laden
- 18. Tastatur verbirgt die Layout-Komponenten
- 19. iPhone - Erstellen benutzerdefinierter UITableViewCell oberen und unteren Grenzen
- 20. pageYOffset Scrolling und Animation in IE8
- 21. TableView und Detailansicht Zelle Anzeige
- 22. TableView gibt null (0) zurück, wenn Zeile
- 23. WPF SelectedItem und Scrolling
- 24. React.js und Scrolling SPA
- 25. TableView zum Implementieren von Zellen überlappen mit benutzerdefinierten Bildlauf
- 26. Wie können JavaFX TableView-Zellen editierbar gemacht werden?
- 27. notifyDataSetChanged() macht die Liste aktualisieren und blättern springt zurück nach oben
- 28. Ändern der Hintergrundfarbe von geraden Zellen in tableView
- 29. warum Tag in tableview zu reuseing Zellen verändert
- 30. TableView Schleife durch alle Zellen zum Löschen von ihnen, Swift
Vielen Dank für Ihre Beobachtung, die das Problem behoben. – Umark
Großartig. Ich sehe aus Ihrer Geschichte, dass Sie keine der akzeptierten Antworten als offizielle Antworten auf Ihre Fragen auswählen. Vielleicht wussten Sie das nicht, aber links von den Antworten sehen Sie ein Häkchen. Wenn Sie darauf klicken, wählen Sie die Antwort aus, die die Lösung für Ihr Problem war. Das gibt mir einen gewissen Ruf, und für Leute, die dieselbe Frage haben, sehen sie, welche Antwort Ihnen geholfen hat. Wenn Sie eine Chance haben, klicken Sie bitte auf das Häkchen. Vielen Dank. – mahboudz
Awesome, versuchte eine Menge Dinge, bevor dies mein Problem behoben. –