Quero definir a altura do primeiro cabeçalho no meu UITableView. Para os outros cabeçalhos, quero que eles permaneçam na altura padrão. Que valor / constante posso colocar no lugar de "someDefaultHeight" no código abaixo?
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return kFirstHeaderHeight;
return someDefaultHeight;
}
obrigado
iphone
cocoa-touch
uitableview
rédea
fonte
fonte
Respostas:
No IOS 5.0 em diante, você pode retornar UITableViewAutomaticDimension na maioria dos métodos de delegação. Está na parte inferior da página de documentação
fonte
UITableViewAutomaticDimension
retorna-1
(const codificado) e não vejo nenhuma seção na minhaUITableView
.UITableViewAutomaticDimension
mostra -1 quandoNSLog
?- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
se você estiver implementando o- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
método, isso não funcionará.UITableViewAutomaticDimension
ele terá uma altura zero.viewForHeaderInSection
você só precisa setestimatedSectionHeaderHeight
Ao verificar os padrões no meu aplicativo, parece que para uma tabela agrupada o padrão é uma altura de 22 e para uma tabela não agrupada, o padrão é uma altura de 10.
Se você verificar o valor da propriedade sectionHeaderHeight na sua tableview, isso deve lhe indicar.
fonte
UITableViewStyleGrouped
tem 22 anos eUITableViewStylePlain
10 anos.Realmente faça o truque :)
fonte
return [self.tableView sectionHeaderHeight];
, ou melhor aindareturn [tableView sectionHeaderHeight];
,. No entanto, ambos retornam -1 para mim, talvez porque não estou usando uma ponta ou storyboard.Por uma questão de integridade: no iOS7 +, a altura dos cabeçalhos de seção de estilo agrupado é
55.5
para o primeiro e38
para os cabeçalhos seguintes. (medido com DCIntrospect)fonte
Para o swift 4.2, você deve retornar UITableView.automaticDimension
fonte
Não sei ao certo qual é a resposta correta, mas nem 10 nem 22 parecem ser a altura correta para uma exibição de tabela agrupada no iOS 5. Estou usando 44, com base nessa pergunta, e pelo menos parece aproximadamente a altura correta.
fonte
Para obter a altura padrão, basta
super
manipulá-la:fonte
[super tableView:tableView heightForHeaderInSection:section];
retorna 0 para mim, talvez porque não estou usando uma ponta ou storyboard.Isso deve fazer o truque
fonte
return [self sectionHeaderHeight];
[self sectionHeaderHeight];
produz um erro. Você quis dizer[tableView sectionHeaderHeight];
?