Domanda

Sono molto presto nel processo di apprendimento dello sviluppo di iPhone. Sto cercando di mettere la testa intorno a vari pezzi. In questo momento ho appena preso il modello di base NavigationController e sto provando a creare una semplice vista tabella raggruppata con un paio di campi di testo. Quello che non riesco a fare è far sì che Interface Builder mi consenta di rilasciare un UITableViewCell in un UITableView in modo da poter aggiungere un campo di testo alla cella. È anche possibile (sembrerebbe che si supponga che UITableViewCell sia un controllo trascinabile)?

In caso contrario, significa che tutto ciò è codice che dovrò scrivere da solo?

È stato utile?

Soluzione

Puoi creare la cella con Interface Builder, ma devi renderlo un oggetto di livello superiore, anziché un figlio della vista tabella. Quindi puoi restituire questa cella nella funzione tableView: cellForRowAtIndexPath del controller di visualizzazione: .

Assicurati di dare alla cella un identificatore in Interface Builder e quindi usa lo stesso identificatore con dequeueReusableCellWithIdentifier: (vedi il codice di esempio per come funziona: l'idea è che le celle vengono riutilizzate: il sistema operativo alloca solo tutte le celle che si adattano allo schermo contemporaneamente. Modo intelligente per risparmiare memoria.)

Altri suggerimenti

Fai attenzione con il metodo Boot To The Head. Perderai se non gestirai correttamente il tuo IBOutlets . Proverò a spiegarlo al meglio delle mie capacità senza pubblicare codice (NDA). Se prevedi di utilizzare IB per creare la tua cella, crea UITableViewCell come proprio file Xib. Imposta il proprietario del file come sottoclasse UIViewController (o UITableController ). Chiama IBOutlet come UITableViewCell * cellFactory . Nel table UITableViewDataSource tableView: cellForRowAtIndexPath: esegui il seguente pseudo-codice;

  1. Prova a dequeue una cella usando l'identificatore impostato in IB
  2. In caso di successo, hai finito. Usa la cella
  3. Altrimenti devi creare una nuova cella. Utilizza il metodo [NSBundle mainBundle] loadNibNamed: owner: options: con il tuo file xib corretto. Questo riempirà l'ivar cellFactory con una cellula fresca. Ecco la parte difficile.
  4. imposta cell = cellFactory quindi rilascia cellFactory e impostalo su zero per essere sicuro di non riutilizzarlo accidentalmente. Ora sei sicuro di usare la tua cella normalmente

Sfortunatamente, in realtà non funziona in questo modo: le celle nella vista tabella sono generate dal delegato in fase di esecuzione. Si scopre che è un codice molto semplice. Guarda il codice di esempio di tableview, è abbastanza facile da seguire.

Questo è un buon tutorial sull'uso del Builder UI per UITableView

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