Was ist die Standardhöhe von UITableViewCell?


166

Ich dachte, diese Informationen wären leichter zu finden gewesen :-)

Was ist die Standardhöhe einer UITableViewCell? Es sieht aus wie 44 Pixel, aber ich würde es vorziehen, sicher zu sein.

Antworten:


361

Es sind 44 Pixel. Bestimmt. Ich werde diese Nummer nie vergessen.

44px ist auch die Standardhöhe für UIToolbar und UINavigationBar. (Beide wechseln zu 32px, wenn sie im Querformat automatisch gedreht werden.)


61
Haha, "Ich werde diese Zahl nie vergessen" klingt bedrohlich ;-)
Rob

4
@antony: view.bounds.size.height
Samvermette

4
@ MikeyWard: Sie haben das wahrscheinlich schon herausgefunden, aber das 1px-Trennzeichen ist in der Höhe enthalten. Es deckt tatsächlich den untersten Inhalt der Zelle ab.
Ben S

44
Technisch sind es 44 Punkte. Auf einem Retina-Display wird 88px angezeigt. Keine Haare spalten oder so.
Ben Mosher

23
tableView.rowHeight
Hunter

27

Wenn Sie die Standarddimension auf einem beliebigen Gerät möchten, können Sie Folgendes verwenden: UITableViewAutomaticDimension

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    return UITableViewAutomaticDimension;
}

Obwohl derzeit 44 Pixel die Standardeinstellung ist, ist dies eine nützliche Methode, wenn für Ihre App der Standardwert festgelegt ist.


3
Wurde UITableView.automaticDimensionsin Swift 4
Bot

Dies funktioniert immer nur, wenn Sie nur die Standardhöhe wünschen. Wenn Sie tatsächlich ein Vielfaches der Standardhöhe wünschen, ist der von dieser zurückgegebene Wert keine tatsächliche Höhe. Apple hat die wahre Punkthöhe hinter dieser magischen Zahl (die zufällig -1 ist) versteckt.
PKCLsoft

16

Wann style = UITableViewStyleGroupedist die Standardhöhe der oberen und unteren Zellen tatsächlich 45.0f(nicht 44.0f). Wenn die gruppierte Tabelle nur aus einer Zeile besteht, ist die Zellenhöhe gleich 46.0f.


ist das einschließlich des Trennzeichens?
lhunath

10

Wenn Sie dies im laufenden Betrieb berechnen möchten, weisen Sie einfach eine Dummy-Tabellenzelle zu und lesen Sie deren Höhe ab

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
int height = cell.frame.size.height ;

Auf diese Weise verteidigen Sie sich gegen Änderungen in zukünftigen Versionen von iOS, obwohl dies vermutlich unwahrscheinlich ist.


Dies ist problematisch mit Autolayout
MobileMon

27
Beim Autolayout ist alles problematisch.
Devios1

problematisch wie genau?
AndrewR

3

"Wenn style = UITableViewStyleGrouped, beträgt die Standardhöhe der oberen und unteren Zellen tatsächlich 45,0 f (nicht 44,0 f). Wenn die gruppierte Tabelle nur eine Zeile enthält, beträgt die Zellenhöhe 46,0 f." Es ist falsch!! 44.0f in der Tat! Ich teste es einfach!


2

Das klingt ungefähr richtig. Um jedoch sicherzugehen, dass Sie den Interface Builder laden können, fügen Sie eine UITableViewCell in das Projekt ein und überprüfen Sie die Größeneigenschaften im Inspektorfenster. Ich habe mein MacBook momentan nicht bei mir, daher kann ich es nicht überprüfen. Aber wenn Sie von jemandem keine bessere Antwort erhalten, können Sie dies selbst überprüfen.


Ah, okay, dort habe ich ursprünglich die 44 bekommen.
Rob

2

Verwenden Sie in Swift 4 und Swift 5 einfach:

UITableView.automaticDimension

Die Verwendung von 44px reicht nicht aus, da sie mit unterschiedlichen Bildschirmpixeldichten variiert.


0

Unter iOS 12 beträgt die Standardhöhe auf iPhone X-ähnlichen Geräten (X, XS, XS Max, XR) 49pt .

Andere Geräte unter iOS 12 haben standardmäßig noch 44pt . Es ist ein subtiler Unterschied, aber es scheint eine gute Verbesserung im direkten Vergleich zu sein.

Wenn Sie mir nicht glauben, messen Sie sich in diesem Screenshot (vergessen Sie nicht, durch 3 zu teilen) ...;)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.