Ich habe eine ViewController und ich möchte zwei 1 TableView und 1 ChildViewController drin haben.Mehrdeutiges Layout mit dynamischer TableView-Höhe
- tableView ist mit dynamischen Zellenhöhen nicht scrollbar. (Ich verwende eine Tabelle, damit ich Zeilen reduzieren kann)
- childVC ist eine scrollbare tableView mit dynamischen Zellenhöhen.
meine Zwänge wie:
NSLayoutConstraint.activate([
tableView.topAnchor.constraint(equalTo: view.topAnchor),
tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
tableView.bottomAnchor.constraint(equalTo: artistVC.view.topAnchor),
])
NSLayoutConstraint.activate([
artistVC.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
artistVC.view.trailingAnchor.constraint(equalTo: view.trailingAnchor),
artistVC.view.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
Wenn ich diese Einrichtung hat, nur der childVC auf dem Bildschirm zeigt. Ich sehe das TableView nicht. Ich möchte die TableView so viel erweitern, wie es benötigt und dann die ChildVC nach unten scrollen lassen.
- für das Tableview I erhalten:
Height and scrollable content size are ambiguous
- für die Ansicht des childVC ich:
Height and vertical positions are ambiguous
aber ich nicht die Höhe selbst festlegen kann, wie ich weiß nicht, was die Höhe der tableViewCell ist ..
Irgendwelche Vorschläge? Ich habe versucht, den inhaltlichen und inhaltlichen Druckwiderstand zu ändern, aber ich habe dort kein Glück gefunden.
Nur eine Klarstellung für andere Leser: 'intrinsicContentSize' ist eine Eigenschaft von' UIView', die standardmäßig keine innere Größe hat, sondern nur '(0,0)' wäre. Dies würde dann "contentSize" als seinen neuen Wert geben. – Honey
Auch über 'invalidateIntrinsicContentSize': Wenn Ihr TableView neu geladen werden muss, dann rufen Sie 'invalidateIntrinsicContentSize' auf, wenn Ihre Tabellenansicht Daten neu lädt * für die ** neue ** Inhaltsgröße – Honey
' Erweiterung CollectionViewController: UICollectionViewDelegateFlowLayout * neu abfragt { func Kollektion (_ Collection: UICollectionView, Layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: indexPath) -> CGSize { wenn indexPath.row == 0 { wenn wir vc = data~~POS=TRUNC [indexPath.row] wie? ArtistDetailViewController { print ("detailVC ist \ (vc.tableView.intrinsicContentSize)") return vc.tableView.intrinsicContentSize } else { return CGSize (Breite: 10, Höhe: 10) } } ' – Honey