Ho uno storyboard con 1 UIViewController
, contenente 1 UIView
che contiene un numero di nidificazione UIView
s. Ho sottoclasse il controller View per implementare questo metodo:UIView ha dimensioni verticale mentre è in orizzontale?
- (BOOL)shouldAutorotateToInterfaceOrientation: UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
Ho anche aggiunto
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeLeft</string>
al Info.plist
.
Nel viewDidLoad del UIView principale sto facendo questo:
Il problema è il controllo è solo 756px di larghezza anziché l'atteso 1024. Vedere la schermata qui sotto per i dettagli. Ho cercato su tutto il web ma non riesco a trovare una soluzione a questo problema frustrante ovunque. Sto usando Xcode 4.5 con iOS5.1 impostato come base SDK.
EDIT Funziona sostituendo il telaio con i limiti. Tuttavia, non capisco cosa sta succedendo, quindi non funziona con le dimensioni del fotogramma.
Grazie! Sostituire 'frame' con i limiti funziona! Tuttavia, non capisco davvero perché? Qualche possibilità di farlo funzionare con frame? Non capisco perché la dimensione di UIView sia diversa nella superview e nel suo sistema di coordinate – s1m0n
Dalla mia comprensione ciò accade perché la vista si trova sulla finestra e quella finestra deve avere una modalità landscape interna, se questo è in qualche modo vicino ad essere true, le coordinate della vista sul sistema di coordinate della finestra non riflettono la rotazione quando la finestra viene ruotata insieme alla sua vista e le sue viste secondarie. Potresti voler aggiornare la conoscenza del sistema di coordinate per una migliore comprensione (rotazione e forse la transizione deve essere sufficiente per questo caso): http://en.wikipedia.org/wiki/Cartesian_coordinate_system Quella è una matematica scolastica come ricordo. –
Probabilmente varrebbe la pena di leggere attraverso http://stackoverflow.com/questions/1210047/iphone-development-whats-the-difference-between-the-frame-and-the-bounds, e alcune delle domande collegate. –