Ho un UIScrollView contenente un UIImageView e ho qualche problema a ottenere il comportamento corretto quando l'iPhone ruota.Ridimensiona l'immagine per adattarla alla rotazione dell'iPhone
Obiettivo: Sto cercando di ottenere la seguente quando si passa da verticale a orizzontale:
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| | AAAAAA |
|DDDDDDD| --> | CCCCCC |
|EEEEEEE| | EEEEEE |
|FFFFFFF| |_____GGGGGG_____|
|GGGGGGG|
---------
Qui l'intera immagine nella vista ritratto è scalata per adattarsi nella vista paesaggio quando l'iPhone ruota. È anche centrato. Sto anche cercando di preservare le proporzioni. Anche l'interazione dell'utente è attiva e l'utente dovrebbe essere in grado di utilizzare l'intero schermo per eseguire il pan/zoom dell'immagine.
Attualmente ho il seguente autoresizingMask
sul ScrollView:
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
Ma questo ha pronunciato la seguente
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| |AAAAAA |
|DDDDDDD| --> [BBBBBB |
|EEEEEEE| [CCCCCC |
|FFFFFFF| [DDDDDD__________|
|GGGGGGG|
---------
Questa impostazione preserva scala e l'offset dall'angolo in alto a sinistra.
Domanda: E 'possibile ottenere questo comportamento usando adatto autoresizingMask
? In caso contrario, si dovrebbe probabilmente impostare
scrollView.autoresizingMask = UIViewAutoresizingNone;
e impostare manualmente zoomScale
e contentOffset
per l'UIScrollView a rotazione. Ma dove dovrebbe essere fatto? Che dire dell'animazione di quel cambiamento?
Soluzione: Con molto modificando leggermente la risposta qui sotto ho ottenuto il comportamento sopra utilizzando il codice qui sotto:
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth
| UIViewAutoresizingFlexibleHeight);
imageView.contentMode = UIViewContentModeScaleAspectFit;
scrollView.contentMode = UIViewContentModeCenter;
Grazie! È stato veloce. Per ottenere il comportamento corretto ho dovuto modificare leggermente il nostro codice (vedi sopra), ma questo mi ha indirizzato. – user467225
Non funziona affatto –