Eu tenho algumas tabelas (estilo agrupado) no meu aplicativo para iPhone (apenas em parte da tela e adicionadas com Interface Builder
, embora não subclassificadas UITableViewController
), que 80% das vezes são pequenas e cabem na tela. Quando a mesa couber na tela, eu gostaria de desativar a rolagem, para torná-la um pouco mais limpa. Mas se a tabela sair da tela (quando as linhas forem adicionadas posteriormente a ela), gostaria de ativar a rolagem novamente (porque, caso contrário, você não poderá ver esse conteúdo).
Existe uma maneira de fazer isso? Não consigo entender. Eu sei fazer:
tableView.scrollEnabled = NO;
mas não tenho certeza de onde, ou se tenho que calcular o tamanho do objeto da tabela ou algo assim para que isso funcione.
Atualização : Aqui está a solução que finalmente funcionou para mim:
if (table.contentSize.height < table.frame.size.height) {
table.scrollEnabled = NO;
}
else {
table.scrollEnabled = YES;
}
Eu executo esse código depois de chamar reloadData
a tabela, que calcula os tamanhos certos e parece funcionar.
table.frame.size.height
é o tamanho real do objeto (você pode ver isso Interface Builder
) exibido na tela, enquanto table.contentSize.height
as alturas de: cabeçalho, rodapé e altura de cada célula somadas.