Domanda

Come posso ruotare manualmente una vista usando il autoresizingMasks, come se l'utente avesse ruotato il telefono e si fosse auto-ruotato. Inoltre voglio che sia istantaneo, nessuna animazione. Voglio sapere perché ne ho bisogno, guarda la mia altra domanda su Dev iPhone - mantenendo la rotazione dell'interfaccia .

Grazie !!

È stato utile?

Soluzione

Quello che vuoi fare qui è usare le trasformazioni Affine per ruotare la tua vista, l'ho realizzato anche se al momento non ho il codice davanti a me. Se fai una semplice rotazione scoprirai che la tua vista sarà tagliata e non al centro come vorresti, quello che devi fare qui è impostare l'ancora del tuo livello (gioca con il valore fino a ottenere quello che vuoi) affinché la vista appaia nel punto desiderato. Il modo per avvicinarsi a questo è solo fare la rotazione di trasformazione affine di 90 gradi e vedere gli effetti che ha sulla vista. In questo modo dovresti essere in grado di capire dove devono trovarsi i livelli di ancoraggio. Pubblicherò un po 'di codice di esempio qui più tardi quando sono davanti al mio mac. Spero che sia d'aiuto

Altri suggerimenti

Non capisco bene cosa intendi per

  

" ... utilizzando i autoresizingMasks ... "

Ho fatto lo stesso con l'animazione UIIView. Ci sono molte altre tecniche anche là fuori. ecco il mio codice:

-(void)rotateToLandscape
{
UIWindow *win = [[UIApplication sharedApplication]keyWindow];
if(UIInterfaceOrientationIsPortrait(self.interfaceOrientation)){
    [[[UIApplication sharedApplication] keyWindow] setBackgroundColor:[UIColor blackColor]];
    [UIView beginAnimations:@"View Flip" context:nil];
    [UIView setAnimationDuration:0.3];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    win.transform = CGAffineTransformIdentity;
    win.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
    win.bounds = CGRectMake(0.0f, 0.0f, 480, 320);
    win.center = CGPointMake(160.0f, 240.0f);
    [UIView commitAnimations];
}   

}

// Spero che il codice non abbia bisogno di spiegazioni.
// È possibile rimuovere le istruzioni di animazione per ottenere l'effetto desiderato (non animato).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top