Wenn Sie etwas wollen, ähnlich wie bei einem Newsfeed wie auf Facebook erstellen, dann eine UITableView verwendet, ist der Weg zu gehen. Je nachdem, wie viele verschiedene Arten von Kartenlayouts Sie möchten, können Sie für jedes Kartenlayout einen anderen dynamischen Prototyp UITableViewCell erstellen. UITableViews sind dafür die natürlichste und sind auch für die Leistung großartig. Es ist im Grunde, was Sie zuerst erwähnt haben, indem Sie "wiederverwendbare UIView in UIScrollView" gesagt haben. UITableView ist ein UIScrollView, und die UITableViewCells sind im Grunde UIViews und ja, sie werden wiederverwendet. Zu jeder Zeit sind nur genügend Zellen erforderlich, um zu zeigen, was auf dem Bildschirm angezeigt wird. Wenn Sie 100 Nachrichten in Ihrem News-Feed haben, werden immer noch nur 7 Zellen vorhanden sein. Während Sie durch den News-Feed blättern, werden die 7 Zellen wiederverwendet, um verschiedene Elemente im News-Feed zu erstellen.
Für dynamische Höhen: Sie können nicht ausdrücklich angeben, dass Sie dynamische Höhen im Storyboard wünschen. Stattdessen, was Sie tun, ist für Ihre Label mit unterschiedlicher Höhe, machen Sie die Zeilen-Attribut gleich 0. Sobald das gleich 0 ist, dann müssen Sie sicherstellen, dass Sie Constraints alle ordnungsgemäß von oben nach unten in der Zelle platziert. Sie können viele Elemente haben, aber iOS benötigt die Einschränkungen, um perfekt zu sein, damit es die Höhe eindeutig bestimmen kann.
im View-Controller entspricht, schreiben Sie folgendes in Ihrer viewDidLoad
Methode:
tableView.rowHeight = UITableViewAutomaticDimension
Dann empfehle ich tableView.estimatedRowHeight = 150
oder so ähnlich auch tun, damit Ihr Scrollen nicht so wackelig sein wird.
Die 100% ige Lösung zum Scrollen (besonders nach oben scrollen), um nicht wackelig zu werden, weil es normalerweise mit dynamischen Zellenhöhen geschieht, ist die Methode tableView(:heightForRowAtIndexPath)
der Delegierten Methode TableView zu implementieren.
Das heißt, das ist nur ein kleiner Vorläufer, wie man das beginnt. Das Thema der dynamischen Höhen kann mit vielen Tutorials im Web gefunden werden und auch zahlreiche Fragen zu Stackoverflow über die Probleme, denen die Leute begegnen.
UICollectionView ist auch eine Option –
Es ist nur eine Ansicht innerhalb einer Zelle contentView mit diesem Hintergrund andere Farbe ... – Tj3n
für das Anzeigen dieser als eine Liste, wie ein Newsfeed, eine Tabellenansicht oder eine Sammlungsansicht wäre wahrscheinlich besser für die Leistung und die Die tatsächlichen Zellen würden nur eine benutzerdefinierte Ansicht enthalten, in der Sie einen Rahmen mit der gleichen Farbe wie Ihr tableView-Hintergrund haben. Ich füge gerade die gleiche Funktionalität zu meiner App hinzu und das ist, wie ich es nähern werde. Ihre Zelle könnte sogar nur einen klaren Hintergrund und Einschränkungen für den tatsächlichen Inhalt haben, um sie kleiner als die Zelle zu machen. – Scriptable