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.

Foi útil?

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:

http://developer.apple .com / iphone / biblioteca / documentação / UIKit / reference / UITableViewDelegate_Protocol / referência / reference.html

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;

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top