Domanda

Sto lavorando a un progetto come la versione iOS client di Twitter. Quando si progetta la tabella, ogni cella cambia l'altezza per adattarsi al suo contenuto (tweet).

Ma ho incontrato un problema: l'altezza della cella dello schermo corrente funziona bene, ma quando scorri verso il basso, la nuova cella riutilizza l'altezza delle vecchie celle.

È stato utile?

Soluzione

Sì, la programmazione della tabella è dove l'approccio del modello di controllo del modello viene davvero utile. Se cambi altezza della tua cella da qualche parte come tableView:didDeselectRowAtIndexPath: Potresti avere la sensazione che funzioni, ma non lo fa. Quello che puoi fare in questo metodo è modificare i tuoi dati e ricaricare la tabella (o parte di esso).

Come menzionato nei commenti sopra, dovrai:

Fornire un'altezza corretta per ogni cella in

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

Fornire vista corretta (cella) in

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

Quando si desidera apportare un po 'di modifica, dovresti modificare i tuoi dati model (o oggetto appropriato che tiene i dati relativi al contenuto) e quindi chiama uno dei UITableView's reload metodi, forse:

- (void)reloadData
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

La documentazione di Apple può essere scarsa (anche se penso che sia abbastanza professionale): questi sarebbero i link di base per te:

Riferimento di classe uitableView

Riferimento protocollo UableViewDataSource

Riferimento del protocollo UableViewDelegate

Guida alla programmazione della visualizzazione della tabella per iOS

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