2015-06-22 9 views
5

Ho un UITableView, sto aggiungendo tableFooterView caricato da uno xib.Come si imposta l'altezza su una tabellaFooterView caricata da un xib

var footer = NSBundle.mainBundle().loadNibNamed("AFooterView", owner: self, options: nil).first as! AFooterView 
self.tableView.tableFooterView = footer 

Questo funziona bene, ma ho bisogno di essere in grado di impostare l'altezza per questo piè di pagina. Lo xib ha un solo UIImageView centrato verticalmente e orizzontalmente in modo che si adatti a qualsiasi altezza della vista.

Non ho idea di come fare questo con AutoLayout? Quale sarebbe la strada giusta da seguire?

+0

si potrebbe aggiungere una presa di corrente a un vincolo che gestisce l'altezza della vista e cambiare è costante per essere la dimensione che desideri - prima di assegnarla al 'tableFooterView' –

+0

C'è un motivo per cui non devi solo impostare l'altezza della vista del piè di pagina direttamente nel tuo xib? – JJC

+0

Non posso impostarlo nello xib perché l'altezza cambia, non so come farlo dinamicamente con l'autolayout ... @JJC – Andres

risposta

7

Mi dispiace per la confusione, ecco la risposta di aggiornamento:

So che si può fare questo impostando l'altezza del telaio, ma potrebbe funzionare anche con layout automatico semplicemente ri-assegnazione del piè di pagina visualizza dopo che imageView ha terminato il caricamento.

// either let auto layout calculate the frame, or set the frame yourself 
// I set the width to an arbitrary size but it doesn't seem to matter, 
// it will automatically be adjusted by the tableview when you assign it 
CGFloat width = 100; 
CGFloat height = 500; 
footerView.frame = CGRectMake(0, 0, width, height); 
// this is the "trick": re-assign the footerView after its size has been updated 
// so that the tableView will show it correctly 
tableView.tableFooterView = footerView; 

Per ulteriori informazioni, vedere Resizing a UITableView’s tableHeaderView

La risposta originale parlato piè di sezione, non presenterà vista piè di pagina

+0

Ci scusiamo per la confusione; Se hai già impostato e calcolato tutti i vincoli (funziona anche se hai impostato l'altezza del fotogramma da solo), riassegna semplicemente la vista del piè di pagina alla tabella. La tabella riconoscerà che ha un nuovo piè di pagina e rifare il layout necessario per la dimensione corretta del piè di pagina: 'yourTableView.tableFooterView = yourFooterView;' – Velociround