2011-11-08 9 views
13

In un UITableView in cui le celle contengono gli oggetti UITextField, è possibile che uno di quegli oggetti UITextField sia il primo che risponde a che la sua cella non venga riutilizzata?Un UITextField con stato di primo soccorritore in UITableViewCell impedisce il riutilizzo della cella?

Ad esempio, con un UITableView con più righe di quelle che si adattano allo schermo, è possibile toccare uno UITextField per far apparire la tastiera per il campo in quella cella. Quindi scorri la vista tabella per far sì che quella cella vada fuori campo. Quando si scorre alla cella, è possibile visualizzare le chiamate a -tableView:cellForRowAtIndexPath: per tutte le celle, ad eccezione di quella che contiene lo UITextField che attualmente dispone dello stato di primo risponditore.

Questo comportamento mi porta a credere che iOS è consapevole del fatto che la mia cella contiene il primo soccorritore e sceglie di non scartare la cella, quindi non ha bisogno di chiamare l'origine dati per ottenere il cellulare quando si scorre di nuovo in vista così.

Questo comportamento è auspicabile, ma sono preoccupato perché non ho visto alcuna documentazione che indica che questo comportamento è garantito, e mi dispiacerebbe fare affidamento su di esso se ci sono condizioni in cui non è vero.

Qualcuno può indicarmi qualche documentazione relativa al riutilizzo delle celle di visualizzazione delle tabelle e ai primi soccorritori che copre questa situazione?

+1

Puoi creare una sottoclasse di UITableviewCell e sovrascrivere il metodo - (void) prepareForReuse {} per vedere se la tua cella viene riutilizzata. – imthi

+0

Non sono sicuro che sia documentato, ma una cosa è certa: non devi prenderla in considerazione, poiché sembra essere automatica. –

risposta

3

Non c'è alcun riferimento nella documentazione ufficiale dell'SDK iOS. Hai ragione a essere preoccupato che questo comportamento che stai osservando non è garantito e non dovrebbe essere invocato.

Problemi correlati