2014-12-03 13 views
5

Quando visualizzo le dimensioni del fotogramma (0.0,0.0,320.0,435.0) applicando il layout automatico, appare corretto in iphone 5 (4 pollici) e quando sono in esecuzione in iphone 4s sembra corretto a causa del caricamento automatico ma quando sto recuperando il valore del suo frame dopo l'esecuzione durante il tempo di esecuzione appare "(0.0,0.0,320.0,435.0)"Non riesco a ottenere le dimensioni che sono cambiate dopo aver applicato il layout automatico in iphone 4s? Voglio ottenere la dimensione perché utilizzando quella dimensione posso impostare a livello di programmazione la dimensione della vista personalizzata creata.UIView viene ridimensionato utilizzando il layout automatico ma non è corretto ios

+2

a che punto stai cercando di leggere il telaio? Probabilmente è perché la vista non è stata esposta al momento della stampa della sua cornice. – liamnichols

+0

@liamnichols Sto cercando di ottenere in vista ha caricato come voglio impostare la dimensione della visualizzazione personalizzata come per dimensione del fotogramma ottenuto. –

+0

Prova ad aggiungere il codice in vista apparirà .. e controlla se funziona o no –

risposta

8

Penso che il layout automatico non abbia avuto il tempo di impaginare le visualizzazioni prima che venga chiamato. Il layout automatico non è accaduto dal momento in cui viewDidLoad viene chiamato, perché viene chiamato subito dopo che le viste sono state caricate e solo dopo che le viste sono state posizionate nella gerarchia della vista del controller della vista e infine strutturate (nel metodo layoutSubviews della vista).

provare questo codice

 //delegate method 
     - (void) viewDidLayoutSubviews 
     { 
      NSLog(@"height=%f",self.myview.frame.size.height); 
     } 
13

Prima che il "codice di ottenere reali dimensioni", inserire il seguente codice:

yourView.setNeedsLayout() 
yourView.layoutIfNeeded() 
+0

funziona per me –

Problemi correlati