2013-03-06 13 views
12

Sto provando a utilizzare una sottoclasse personalizzata di UITableViewCell con lo stile impostato su UITableViewCellStyleSubtitle e utilizzarlo con registerClass:forCellReuseIdentifier:. Tuttavia, non sono sicuro di come farlo.Quando si registra un UITableViewCell per il riutilizzo, quale metodo di inizializzazione su quella cella viene chiamato?

Il mio pensiero è stato quello di eseguire l'override del metodo init e chiamare

self = [super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:myReuseIdentifier]; 

all'interno di esso. Tuttavia, non riesco a capire quale metodo init viene chiamato (o se questo è il modo giusto per farlo.)

Ho provato a intercettare tutti i seguenti metodi di init, ma nessuno di loro sembra quella corretta quando dequeueing una cella:

  • init
  • initWithCoder
  • initWithFrame

Ho confermato che dequeueReusableCellWithIdentifier:forIndexPath: restituisce una cella del tipo corretto, quindi so che è stata creata. Non so proprio quale sia il metodo init chiamato così non posso impostare lo stile predefinito.

risposta

31

Credo che chiami initWithStyle: reuseIdentifier: per la cella della tabella init.

Dalla documentazione mela

dequeueReusableCellWithIdentifier:

Se ti sei registrato una classe per l'identificatore specificato e una nuova cella deve essere creato, questo metodo inizializza la cellula chiamando il suo initWithStyle: reuseIdentifier: Metodo . Per le celle basate su pennino, questo metodo carica l'oggetto cella dal file di pennino fornito. Se una cella esistente era disponibile per il riutilizzo, questo metodo chiama invece il metodo prepareForReuse della cella.

J

+0

Sì, l'ho trovato dopo che ho postato. Contrassegnare la tua come risposta in buona cittadinanza S/O. – MarqueIV

2

[[head-slap]] Sono un idiota! Il metodo che stavo cercando di aggiungere nel corpo della chiamata init ...

initWithStyle:reuseIdentifier: 

... è quello che dovrebbe essere l'override!

trovato qui ...

Setting style of UITableViewCell when using iOS 6 UITableView dequeueReusableCellWithIdentifier:forIndexPath:

Le votazioni per chiudere la mia domanda. Speriamo però che la brevità di questo aiuterà gli altri a evitare di leggere i dettagli superflui nell'altro.

Problemi correlati