iPhone + UITableView + altura da linha
-
06-07-2019 - |
Pergunta
Estou ajustando a altura da linha do meu UITableView
usando seguinte código
[tableView setRowHeight: 100.00];
Eu estou usando a única linha como separador na UITableView
.
Eventhough definir a altura acima, altura da linha não fica mudança.
Solução
Você deve implementar
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
método delegado. e retornar 100,0 lá.
Outras dicas
Você deve evitar o heightForRowAtIndexPath
se todas as suas linhas são de estatura semelhante e use a propriedade rowHeight
. De acordo com a documentação:
Existem implicações de desempenho para usar tableView: heightForRowAtIndexPath: em vez de rowHeight. Cada vez que uma exibição de tabela é exibido, ele chama tableView: heightForRowAtIndexPath:. Na delegado para cada uma de suas linhas, o que pode resultar em um problema significativo desempenho com vistas tabela com um grande número de linhas (cerca de 1000 ou mais)
No UITableViewController subclasse que poderia ser feito, por exemplo, no método viewDidAppear
(a UITableViewController
tem uma referência para o tableView):
self.tableView.rowHeight = 79.f;
A altura da linha é cozida para dentro das células quando elas são exibidas em primeiro lugar.
Será que você definir UITableView # rowHeight antes de definir a fonte de dados?
Se não, fazê-lo.
Se por qualquer motivo você não pode, a outra opção é chamar UITableView # reloadData depois de definir a altura da linha.
Eu fiz assim, aqui tableobj
nada mais é objeto UITableView
em meu aplicativo.
- (void)viewDidLoad
{
[super viewDidLoad];
[tableObj setRowHeight:100.0f];
}
Ou lidar com isso em numberOfRowsInSection:
como:
- (NSInteger)tableView:(UITableView *)tblView numberOfRowsInSection:(NSInteger)section {
[tableObj setRowHeight:100.0f];
return [soandso count]; // soandso is my object
}
Como definir o rowHeight
antes de definir a fonte de dados. Ela trabalhou para mim (para alturas de linha iguais).
A solução melhor e mais limpo é implementar a função de delegado (Talvez não o melhor se o seu UITableView tem muitas linhas ...).
Além disso, acho que UITableVieCell são UIView para que você possa mudar a sua altura, em primeiro lugar ...
Os delegados são muito poderosas no iPhone dev, aqui o UITableViewDelage:
Você também pode alterar o indentForRow, displayCellForRow, heightForRow, editar coisas .....
Eu não acho que haja tal método um em UITableView ...
Em vez disso você pode usar a propriedade rowHeight ...
Experimentar,
tableView.rowHeight = 100;