Dopo aver aggiornato il mio progetto a iOS 6, mi sono reso conto che il layout automatico è efficace solo in viewDidAppear e gran parte del mio codice si aspetta che il frame della vista sia disponibile in viewDidLoad. Questa limitazione rende quasi inutile per me la bella funzionalità di layout automatico. C'è qualche suggerimento per aiutarmi a utilizzare il layout automatico?Il layout automatico di Xcode è efficace solo in viewDidAppear e questo è molto problematico
Ad esempio, a volte lo sviluppatore deve modificare le informazioni su una sottoview in base a dove il layout automatico sceglie di posizionare quella particolare sottoview. La posizione finale della sotto-visualizzazione non può essere verificata dallo sviluppatore fino a quando l'utente non l'ha già visto. L'utente non dovrebbe vedere questi aggiustamenti delle informazioni, ma presentare i risultati finali tutto in una volta.
In particolare: Cosa fare se si desidera modificare un'immagine in una vista in base alla posizione in cui il layout automatico posiziona tale visualizzazione? Non posso interrogare quel luogo e poi cambiare l'immagine senza che l'utente se ne accorga.
Il problema che sto avendo è che i punti di vista non sono stati disposti in viewWillAppear :, né dopo, né updateViewConstraints viewDidLayoutSubviews - solo in viewDidAppear: sono il layout di vista (i subviews hanno un telaio che non è CGRectZero) - e a quel punto è troppo tardi per modificare la vista senza che l'utente veda le modifiche. –
Senza vedere il tuo codice, posso solo presumere che tu abbia implementato qualcosa in modo errato, poiché qualsiasi subviews dovrebbe essere sul posto quando è stato chiamato 'viewDidLayoutSubviews'. Aggiorna la tua domanda con un po 'di codice in modo che la gente possa offrire una spiegazione su cosa potrebbe andare storto. – CaptainRedmuff
Da quello che ho visto 'viewDidLayoutSubviews' è spesso chiamato più di una volta ed è solo l'ultima volta in cui può essere fatto affidamento. –