Question

Je règle la hauteur de ligne de mon UITableView à l'aide du code suivant

[tableView setRowHeight: 100.00];

J'utilise la seule ligne comme séparateur dans UITableView .

Bien que définir la hauteur au-dessus, la hauteur de la ligne ne soit pas modifiée.

Était-ce utile?

La solution

Vous devez implémenter

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

méthode déléguée. et retourner 100.0 là-bas.

Autres conseils

Vous devez éviter le heightForRowAtIndexPath si toutes vos lignes ont une hauteur similaire et utiliser la propriété rowHeight . Selon la documentation:

  

L'utilisation de tableView: heightForRowAtIndexPath: au lieu de rowHeight a des conséquences sur les performances. Chaque fois qu’une vue tabulaire est affichée, elle appelle tableView: heightForRowAtIndexPath: dans le délégué de chacune de ses lignes, ce qui peut entraîner des problèmes de performances significatifs lorsque les vues tabulaires comportent un grand nombre de lignes (environ 1000 ou plus).

Dans la sous-classe UITableViewController, cela pourrait être fait, par exemple, dans la méthode viewDidAppear (le UITableViewController fait référence au tableView):

self.tableView.rowHeight = 79.f;

La hauteur de la ligne est enregistrée dans les cellules lors de leur affichage initial.

Avez-vous défini UITableView # rowHeight avant de définir la source de données?
Sinon, faites-le.
Si pour une raison quelconque vous ne pouvez pas, votre autre option consiste à appeler UITableView # reloadData après avoir défini la hauteur de la ligne.

J'ai fait comme ça, ici tableobj n'est rien d'autre qu'un objet UITableView dans mon application.

- (void)viewDidLoad
{
    [super viewDidLoad];
    [tableObj setRowHeight:100.0f];
}

Ou manipulez-le dans numberOfRowsInSection: comme:

- (NSInteger)tableView:(UITableView *)tblView numberOfRowsInSection:(NSInteger)section {
    [tableObj setRowHeight:100.0f];
    return [soandso count]; // soandso is my object
}

Parce que définissez le rowHeight avant de définir la source de données. Cela a fonctionné pour moi (pour des hauteurs de rangées égales).

La solution meilleure et plus propre consiste à implémenter la fonction de délégué (ce n'est peut-être pas la meilleure si votre UITableView comporte plusieurs lignes ...).

Pensez également que UITableVieCell est UIView pour pouvoir changer sa hauteur d’abord ...

Les délégués sont très puissants dans l’iPhone dev, ici le UITableViewDelage:

http://developer.apple .com / iphone / bibliothèque / documentation / uikit / référence / UITableViewDelegate_Protocol / Référence / Référence.html

Vous pouvez également modifier l'indentForRow, displayCellForRow, heightForRow, modifier des éléments .....

Je ne pense pas qu'il existe une telle méthode dans UITableView ...

À la place, vous pouvez utiliser la propriété rowHeight ...
Essayer, tableView.rowHeight = 100;

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top