Qual é a altura padrão do UITableViewCell?

166

Eu pensei que esta informação teria sido mais fácil de encontrar :-)

Qual é a altura padrão de um UITableViewCell? Parece 44 pixels, mas eu prefiro ter certeza.

Roubar
fonte

Respostas:

361

São 44 pixels. Definitivamente. Nunca esquecerei esse número.

44px também é a altura padrão para UIToolbar e UINavigationBar. (Ambos mudam para 32px quando autorotados para a orientação paisagem).

Marco
fonte
61
Haha, "Eu nunca vou esquecer esse número" soa ameaçador ;-)
Rob
4
@antony: view.bounds.size.height
samvermette
4
@ MikeyWard: Você provavelmente já descobriu isso, mas o separador 1px está incluído na altura. Na verdade, abrange o conteúdo mais baixo da célula.
Ben S
44
Tecnicamente, são 44 pontos. Ele sai para 88px em uma tela Retina. Não para dividir cabelos ou qualquer coisa.
precisa
23
tableView.rowHeight
Hunter
27

Se você deseja a dimensão padrão em qualquer dispositivo, pode usar: UITableViewAutomaticDimension

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

    return UITableViewAutomaticDimension;
}

Embora atualmente 44 pixels seja o padrão, esse é um método útil se o aplicativo usar o valor padrão definido.

simon_smiley
fonte
3
Foi renomeado para UITableView.automaticDimensionsem Swift 4
Bot
Isso só funciona se você quiser apenas a altura padrão. Se você realmente deseja vários múltiplos da altura padrão, o valor retornado por isso não é uma altura real. A Apple escondeu a verdadeira altura do ponto por trás desse número mágico (que passa a ser -1).
PKCLsoft
16

Quando style = UITableViewStyleGrouped, a altura padrão das células superior e inferior é realmente 45.0f(não 44.0f). E, se a tabela agrupada for apenas uma linha, a altura da célula será 46.0f.

ma11hew28
fonte
isso inclui o separador?
Lhunath 13/11/2012
10

Se você quiser calcular isso rapidamente, aloque uma célula da tabela fictícia e leia sua altura

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

Dessa forma, você se defende contra alterações em versões futuras do iOS, embora eu suponha que isso seja improvável.

brainjam
fonte
Isso é problemático com o autolayout
MobileMon
27
Tudo é problemático com a execução automática.
precisa saber é o seguinte
problemático como, exatamente?
AndrewR
3

"Quando style = UITableViewStyleGrouped, a altura padrão das células superior e inferior é realmente 45.0f (não 44.0f). E, se a tabela agrupada for apenas uma linha, a altura da célula será 46.0f." Está errado!! 44,0f de fato! Eu apenas testei!

sincero
fonte
2

Isso parece certo. Mas, para ter certeza de que você pode carregar o construtor Interface, insira um UITableViewCell no projeto e verifique as propriedades de tamanho na janela Inspetor. Eu não tenho o meu MacBook agora, então não posso verificar. Mas se você não obtém uma resposta melhor de alguém, é assim que você pode verificar por si mesmo.

Ziltoid
fonte
Ah, ok, foi daí que eu peguei o 44.
27409 Rob
2

No Swift 4 e Swift 5, basta usar:

UITableView.automaticDimension

Usar 44px não será suficiente, pois variará com diferentes densidades de pixel da tela.

Dan Bray
fonte
0

No iOS 12, a altura padrão nos dispositivos semelhantes ao iPhone X (X, XS, XS Max, XR) é de 49 pontos .

Outros dispositivos no iOS 12 ainda têm 44pt como padrão. É uma diferença sutil, mas parece uma boa melhoria na comparação direta.

Se você não acredita em mim, meça nesta imagem (não se esqueça de dividir por 3) ...;)

fl034
fonte