Domanda

Sto impostando l'altezza della riga del mio UITableView utilizzando il seguente codice

[tableView setRowHeight: 100.00];

Sto usando la riga singola come separatore in UITableView .

Nonostante l'impostazione dell'altezza sopra, l'altezza della riga non viene modificata.

È stato utile?

Soluzione

Dovresti implementare

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

metodo delegato. e restituisci 100.0 lì.

Altri suggerimenti

Dovresti evitare heightForRowAtIndexPath se tutte le tue righe hanno un'altezza simile e utilizzare la proprietà rowHeight . Secondo la documentazione:

  

Ci sono implicazioni sulle prestazioni nell'uso di tableView: heightForRowAtIndexPath: invece di rowHeight. Ogni volta che viene visualizzata una vista tabella, chiama tableView: heightForRowAtIndexPath: sul delegato per ciascuna delle sue righe, il che può comportare un problema di prestazioni significative con le viste tabella con un numero elevato di righe (circa 1000 o più).

Nella sottoclasse UITableViewController potrebbe essere eseguito, ad esempio, nel metodo viewDidAppear (il UITableViewController ha un riferimento a tableView):

self.tableView.rowHeight = 79.f;

L'altezza della riga viene inserita nelle celle quando vengono visualizzate per la prima volta.

Hai impostato UITableView # rowHeight prima di impostare l'origine dati?
In caso contrario, fallo.
Se per qualsiasi motivo non riesci, l'altra opzione è quella di chiamare UITableView # reloadData dopo aver impostato l'altezza della riga.

Mi è piaciuto, qui tableobj non è altro che l'oggetto UITableView nella mia applicazione.

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

O gestiscilo in numberOfRowsInSection: come:

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

Perché impostare rowHeight prima di impostare l'origine dati. Ha funzionato per me (per altezze uguali).

La soluzione migliore e più pulita è implementare la funzione di delega (forse non la migliore se UITableView ha molte righe ...).

Inoltre, pensa che UITableVieCell sia UIView in modo da poter prima cambiare l'altezza ...

I delegati sono molto potenti negli sviluppatori iPhone, qui UITableViewDelage:

http://developer.apple .com / iphone / biblioteca / documentazione / UIKit / riferimento / UITableViewDelegate_Protocol / Reference / Reference.html

Puoi anche cambiare indentForRow, displayCellForRow, heightForRow, modificare roba .....

Non credo che esista un metodo simile in UITableView ...

Invece puoi usare la proprietà rowHeight ...
Provare, tableView.rowHeight = 100;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top