Talora nell’utilizzo di una tabella è necessario disporre di una riga che non sia legata alla tabella stessa ma indipendente e che sia possibile customizzare senza difficoltà. Vedremo quindi oggi la creazione di una header view personalizzata a partire da un file Xib da noi creato. Accediamo al nostro progetto e dichiariamo,nella classe in cui abbiamo creato la nostra tabella, una variabile di tipo UIView:
UIView *myheader;
Settiamola quindi come IBOutlet:
@property (nonatomic, retain) IBOutlet UIView *myHeader;
Creaimo quindi un nuovo file Xib nel solito modo ( File -> New File -> Empty Xib ) e chiamiamolo CustomHeader.
Accediamo alla libreria ed aggiungiamo una UIView ( che possiamo ridimensionare nella Size Inspector nel Menu Tools )
Cliccando invece sul file Owner -> Identity Inspector nel campo Class inseriamo il nome della nostra classe ( quella dove abbiamo dichiariato la variabile UIView in precedenza ).
In Connection Inspector colleghiamo myHeader alla UIView creata:
Ovviamente possiamo personalizzare la view come vogliamo. Salviamo e ritorniamo al nostro codice in Xcode e nel metodo cellForRowAtIndexPath aggiungiamo il seguente codice:
[[NSBundle mainBundle] loadNibNamed:@"CustomHeader" owner:self options:NULL];
self.tableView.tableHeaderView = myHeader;
Queste due righe di codice sono facilmente comprensibili, nella prima riga effettuo, dal bundle dell’applicazione, il load del file Nib ( realizzato con IB ) chiamato appunto CustomHeader, mentre nella seconda vado ad assegnare al tableHeaderView ( appartenente alla tabella ) myHeader ( precedentemente dichiarata e collegata alla UIView presente nello XIB )
One Response to “T#018 – Header personalizzato nelle TableView tramite file Xib”
7 Ottobre 2010
LeonardoHo appena messo l’header personalizzato alla mia tableView, ma quando scorro la barra in fondo l’header non si vede più. Come posso fare per lasciarlo fisso in modo che posso scorrere la tabella senza far sparire header???