2009-10-04 23 views

risposta

1

Questo è ciò che puoi provare.

Se si desidera cambiare l'orientamento della vista mentre toccando la vista, quindi seguire le istruzioni

  1. Implementare il metodo touchesBegan all'interno della vista.

  2. Nel metodo touchesBegan controllare l'orientamento del dispositivo corrente, [[UIDevice currentDevice] orientation];

  3. Se si desidera cambiare l'orientamento quindi utilizzare il metodo CGAffineTransformation sulla vista come viewRef.transform = CGAffineTransformMakeRotation(angle);

8

Se si imposta la la geometria degli elementi dell'interfaccia utente in Interface Builder, quindi assicurati di impostare gli attributi Autorizzazione in Impostazioni dimensione (Cmd + 3). Puoi quindi vedere come apparirà la vista dopo la rotazione facendo clic sul piccolo pulsante "Ruota" nella parte superiore sinistra della barra del titolo della tua vista in Interface Builder.

Una volta che avete tutto ciò che ha istituito, basta sovrascrivere il metodo seguente nel ViewController:

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation) 
{ 
    return true; 
} 

Ora nel simulatore, è possibile ruotare tutto quello che vuoi e l'interfaccia utente si auto-adattarsi.

+0

Gees, non potevo credere quanto fosse semplice! :) Questo dovrebbe essere sicuramente contrassegnato come la risposta corretta. Grazie. – BruceHill

1

Proprio così tutti sanno, è ora sul punto di vista Transform oggetto:

View.Transform.Rotate(3.14159f * 0.5f); 

Per tutti voi DotNet ragazzi come me che non vogliono utilizzare tutto ciò che è CGAffineTransform, pensando che si romperà le altre cose , provalo. Ha funzionato alla grande per la mia istanza. Ruotato il NavigationController.View e tutto ciò che è al suo interno è perfetto.

+0

questo ruota solo una vista specifica, se si trova all'interno di un UINavigationController, la barra di controllo della navigazione si troverà sul lato sbagliato dello schermo. –

Problemi correlati