2013-02-28 11 views
8

È possibile espandere un UITableView con celle statiche per adattarsi automaticamente allo schermo iPhone 5 da 4 "ed espandere di conseguenza l'altezza di ogni UITableViewCell? Se creo un semplice UITableView in IB con 3 righe statiche, quando lo visualizzo sul Il display dell'iPhone 3.5 "sembra buono, ma sul display dell'iPhone 4" ci sono degli spazi bianchi extra in basso Ho provato a giocare con l'autolayout (sono interessato solo a iOS6), impostando le opzioni di autosizing, ecc. ma senza successoCome posso espandere UITableView per riempire lo schermo intero su iPhone 5 usando Interface Builder?

BTW - so di poter impostare l'altezza nel codice ad esempio in heightForRowAtIndexPath: dividere i limiti o altezza del telaio in base al numero di righe (cioè 3 righe) ma sto cercando qualcosa di più dinamico

..

+0

Io non credo che ci sia alcuna impostazione IB come API fornisce già un metodo dinamico per la regolazione altezza della cella che già sembra di sapere: 'tableView: heightForRowAtIndexPath:'. E comunque, cosa potrebbe essere più dinamico di regolare l'altezza delle celle in fase di esecuzione fino ai limiti del display? Questo funzionerebbe anche per dispositivi inediti e sconosciuti con display sia più grandi che più piccoli. –

+0

il tuo tableview viene caricato per primo, e quindi le celle vengono caricate una volta che i metodi dataSource vengono chiamati. Dal momento che le celle non vengono caricate al momento del caricamento di tableView, suppongo che non sia possibile avere un'opzione migliore del metodo "heightForRowAtIndexPath divide i limiti" per risolvere il problema. –

+0

Grazie ragazzi, so cosa stai dicendo su heightForRowAtIndexPath essendo 'dinamico'. La mia confusione sta nello scopo di autosizing e layout automatico. Hanno qualche ruolo da giocare qui? Possono essere utilizzati per lo stesso scopo? –

risposta

3

Il problema è stato risolto impostando la proprietà AutoLayout su TableView. Una volta fatto questo, la tabella è stata ridimensionata di conseguenza. Successivamente scopro anche che potrei occuparmi del ridimensionamento impostando la maschera AutoSizing.

+1

Dove impostare AutoLayout? Non riesco a trovarlo – Gank

+0

La stessa domanda di Gank sopra, perché in Xcode 6.1.1 impossibile bloccare UITableView da Editor> Pin con la vista super. Come si fa a inserirlo, usando Xcode 6.1.1 e un UITableView contenente solo celle statiche? Grazie in anticipo per la tua risposta. –

1

Un altro modo per risolvere (questo ha funzionato per me) è fare clic sul pulsante Applica fattore di forma da 4 pollici ed estendere UITableView nella parte inferiore dello schermo.

enter image description here

+2

Ma non riesco a vederlo sullo storyboard XCode 6.0. – Gank

2

Ho avuto un problema simile. In Xcode 6.4 ho aggiunto dei vincoli per il mio UITableView nello storyboard.

enter image description here

Problemi correlati