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.

rauben
quelle

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.)

Marco
quelle
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.

simon_smiley
quelle
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.

ma11hew28
quelle
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.

Brainjam
quelle
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!

frank
quelle
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.

Ziltoid
quelle
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.

Dan Bray
quelle
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) ...;)

fl034
quelle