2011-12-20 13 views
53

Per una migliore riutilizzabilità Voglio creare una vista tabella all'esterno del mio Storyboard.Prototipo Celle in un pennino invece di uno storyboard

Ora quando creo un ViewController basato su UITableView con pennino in Xcode, ottengo il TableView predefinito nel file di pennino. Tuttavia, non sono in grado in Interface Builder di aggiungere celle prototipo come nella mia Storyboard.

Attualmente non è possibile aggiungere celle prototipo in un pennino o mi manca qualcosa.

Grazie mille per qualsiasi aiuto.

+1

Oltre alla risposta corretta sopra, vorrei fare riferimento a una soluzione dettagliata per questo caso. - [Collega a StackAnswer] (http://stackoverflow.com/a/10298648/1698467) (utilizzando 'UITableView: registerNib: forCellReuseIdentifier:' e 'tableView: cellForRowAtIndexPath:' con file '.xib') – skywinder

+0

Questa domanda/la risposta è un po 'confusa per me. Sono venuto qui alla ricerca di un modo per utilizzare le celle prototipo all'interno di una vista tabella quando si definisce una vista tabella in uno xib. È perfettamente possibile in uno storyboard sì, ma in qualche modo all'interno di uno xib non c'è proprio questa caratteristica. – Jonny

risposta

91

iOS 5 include un nuovo metodo su UITableView: registerNib:forCellReuseIdentifier:

Per usarlo, mettere un UITableViewCell in un pennino. Deve essere l'unico oggetto radice nel pennino.

È possibile registrare il pennino dopo aver caricato TableView, quindi quando si chiama dequeueReusableCellWithIdentifier: con l'identificatore cella, lo estrarrà dal pennino, proprio come se si fosse utilizzata una cella prototipo Storyboard.

+1

Fantastico - Mi stavo chiedendo come fare questo, cercato qui, ho visto la tua risposta, poi ho visto che il mio (che si rivela essere sbagliato!) Era la risposta accettata. Besi, dovresti accettare questo invece. – jrturton

+0

@jrturton Grazie per l'Heads-Up – Besi

+2

Esiste un modo per impostare il proprietario del file di queste celle come controller dal quale sono registrate? – nicktmro

1

a Swift 4:

  1. Crea nuova Classe Cocoa Touch, sottoclasse da UITableViewCell.
  2. Importante - Attivare la casella di controllo 'anche creare il file XIB' che crea un file Swift e un file .xib
  3. aggiungere etichette nella Xib, come si farebbe per un prototipo di cella a Storyboard
  4. Collegare le prese di etichette per il nuovo file rapida
  5. Importante - Registrati il file pennino in viewDidLoad

    yourTableview.register(UINib.init(nibName: "CustomCellTableViewCell", bundle: nil), forCellReuseIdentifier: "Cell") 
    

    (o)

    yourTableview.register(UINib(nibName: "CustomCellTableViewCell", bundle: Bundle.main), forCellReuseIdentifier: "Cell") 
    
  6. Implementare l'origine dati e delegati come normale e typecaste alla CustomCell in cellForRowAtIndexPath.
Problemi correlati