Domanda

Ho problemi a creare un UIView (in Interface Builder) che contiene un UITableView con qualche altro oggetto, come un UIButton o UILabel. UITableView occupa sempre la massima quantità di spazio in UIView, indipendentemente dalle dimensioni dell'oggetto UITableView stesso. Il proprietario del file è un UITableViewController standard.

È stato utile?

Soluzione

Ecco come farlo facilmente:

1) Crea un controller vista tabella con xib.

2) Cambia il tipo ereditato nel file .h da UITableViewController, in UIViewController.

3) Aggiungi i protocolli UITableViewDataSource, UITableViewDelegate al file .h.

4) Apri xib, aggiungi in una vista.

5) trascina la vista tabella nella xib sotto la vista, ridimensiona come desiderato.

6) Cablare la "vista" proprietà del proprietario del file nella vista anziché in UITableView. Le proprietà dell'origine dati e dei delegati della vista tabella devono comunque essere cablate al proprietario del file.

7) (facoltativo) se vuoi essere in grado di ricaricare o accedere in altro modo alla tabella al di fuori dei metodi delegati del controller della vista tabella che passano in una vista tabella, crea una UITableView * IBOutlet denominata " myTable " o simili, e collegare il tavolo in IB a quello.


Un approccio alternativo è creare un nuovo UIViewController con xib, aggiungere una tabella a xib, collegare l'origine dati / delegare al proprietario del file e creare una nuova classe UITableViewController che usi per copiare i metodi dal controller della vista, quindi elimina.

Altri suggerimenti

Sfortunatamente, creare un UITableView in Interface Builder (IB) è stato molto problematico per me. Ho riscontrato gli stessi problemi di te come sviluppatore principiante e, dopo molte frustrazioni, ho finito per abbandonare IB per UITableViews.

La soluzione migliore per me era implementare UITableViewController (e UINavigationController che usi come intestazione) a livello di programmazione. Una volta capito l'intero paradigma Model-View-Controller, è in realtà abbastanza semplice.

Alcune buone risorse per gestirle in modo programmatico si trovano nella documentazione di Apple con questi nomi:

" Table View Guida alla programmazione per iPhone OS "
" Visualizza la guida alla programmazione del controller per iPhone OS "

Cocoa with love ha pubblicato un articolo su Ricreazione di UITableViewController per aumentare il riutilizzo del codice . Ciò è utile se non puoi utilizzare un UITableViewController , ma vuoi assicurarti che il tuo UIViewController si comporti allo stesso modo.

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