2014-09-17 13 views
5

Quando si crea un'app per iOS 8 in Xcode 6, come si imposta rowHeight di UITableView su UITableViewAutomaticDimension?Imposta rigaHeight di UITableView su UITableViewAutomaticDimension nello storyboard?

In WWDC 2014 Session 226 "What’s New in Table and Collection Views", l'oratore dice che UITableViewAutomaticDimension è il nuovo valore predefinito per le viste tabella create a livello di codice 'rowHeight. Tuttavia, ricorda anche che al momento della sessione questo non è il caso per le visualizzazioni di tabelle caricate da uno xib/storyboard.

Ora che Xcode 6 GM è fuori, come faccio a impostare questo valore nella storyboard, senza dover aggiungere

self.tableView.rowHeight = UITableViewAutomaticDimension; 

nel mio viewDidLoad?

risposta

8

Dopo aver testato diversi valori nello storyboard, la soluzione è semplicemente quello di mantenere il valore di default 44pt in Altezza riga:

44pt row height

Ciò probabilmente significa che non si può avere altezza fissa più celle di 44pt sono state impostate nello storyboard. Dovrai impostarlo a livello di programmazione in viewDidLoad o altrove.

Infine, si noti che al momento non è possibile impostare uno estimatedRowHeight in qualsiasi punto dello storyboard e che, se non lo si imposta a livello di programmazione, verrà impostato su 0. (modifiche benvenuto se si trova il modo di farlo)


È possibile verificare il 44pt comportamento da soli accedendo ai valori in viewDidLoad:

NSLog(@"%f", UITableViewAutomaticDimension); 
NSLog(@"%f", self.tableView.rowHeight); 

Con Altezza riga impostata 44 questo produce :

-1,000000

-1,000000

Con Altezza riga impostato su un altro valore (qui 45pt):

-1,000000

45,00000

+2

Questa è una decisione rischiosa per fare '44' diventare 'UITableViewAutomaticDimension', interromperà un po 'di app. Stavo cercando la conferma di ciò da quando lo sospettavo, grazie. – DeFrenZ

+1

@DavideDeFranceschi Sono d'accordo. Potrei archiviare un radar quando ho tempo se questo non cambia in Xcode 6.1. –

Problemi correlati