2017-07-04 4 views
0

In storyBoard habe ich Top-, Bottom-, Leading- und Trailing-Constraints zur Tabellenansicht in einer Ansicht gegeben. Ich habe tableview height als contentSize.height angegeben. Je nach Größe der Tabellenansicht, keine der Zellen, die in Tabellenansicht 3 oder 4 oder ähnlich angezeigt werden können (abhängig von der Größe des Inhalts kann dies variieren). Aber das Problem ist, dass die Höhe der Tabellenansicht mit der Inhaltsgröße zunimmt. Wenn keine Zellen mehr sind, dann sollte die tatsächliche Höhe der Tabellenansicht mit der Inhaltsgröße verglichen werden, und wenn contentSize kleiner ist als tableview Tatsächliche Höhe, dann sollte nur die Höhe der Tabellenansicht geändert werden.Wenn Inhaltsgröße> tatsächliche Höhe dann feste Höhe und wenn Inhaltsgröße <tatsächliche Höhe dann dynamisch von Tableview swift 3?

if tableViewActualHeight > contentSize { 
// then only change tableview height 
    tableViewActualHeight = contentSize 
} 

Wie können wir & wo diesen Code zu platzieren?

+0

Ihre Frage zu verstehen, ist nicht klar. Was willst du genau erreichen? – Lion

+0

Ich muss Tabellenansicht Höhe einschränken, wenn keine Zellen mehr –

+0

Was meinst du mit mehr? wie viele ? Gib dann der Tabellenansicht eine feste Höhe! – Lion

Antwort

0

Sie müssen eine weitere Einschränkung für Ihre Tabellenansicht festlegen - Fixed height.

Jetzt nehmen (oder verbinden) Sie den Ausgang dieser Einschränkung und setzen Sie dann constant dieser Steckdose gemäß Ihrer Bedingung. Wenn Sie Ihre Inhalte Größe größer als Ihre Tableview ist nichts zu tun gesetzt sonst Ihre Höhe Constraint-Konstante als Inhaltsgröße wie

heightConstraint.constant = 20 // Your contentsize instead of 20 

Sie tun müssen, dass nach dem Tableview erfolgreich neu zu laden, andere weise es nicht korrekten Inhalt Größe geben wird.

Wenn die Höhe Ihrer Zelle oder Zeile festgelegt ist, können Sie die Inhaltshöhe selbst bestimmen. Sie können die Zeilenhöhe mit der Anzahl der Zeilen (Array-Anzahl) multiplizieren!

1

OK hier ist eine Idee für diese

enter image description here

Erste Höhe von Tableview von yourTableView.frame.size.height bekommen. Berechnen Sie jetzt die Höhe Ihrer TableView-Zellen. Lassen Sie uns die Fälle übernehmen.

Unter der Annahme Zelle ist von der Höhe 50 und Tableview, wenn Höhe 200

Erster Fall

Wenn Sie 2-Zelle, dann Gesamtzellenhöhe ist 100. Nun prüfen, ob 100 bottomConstraint von Tableview sein wird, 200-100, das heißt 100.So hier Tableview Höhe wird 100

Zweiter Fall

Wenn Sie 5-Zellen haben, dann Gesamtzellenhöhe beträgt 250 .Jetzt prüfen, ob 250 bottomConstraint ZERO

wird

Bitte lassen Sie mich wissen, wenn ihr euch oder Probleme haben hilft

Verwandte Themen