Pregunta

¿Cómo puedo rotar manualmente una vista usando las Máscaras de tamaño automático, como si el usuario hubiera girado el teléfono y éste hubiera rotado automáticamente? También quiero que sea instantáneo, sin animación. Quiero saber por qué necesito esto, mira mi otra pregunta en iPhone Dev - manteniendo la rotación de la interfaz .

¡Gracias!

¿Fue útil?

Solución

Lo que quieres hacer aquí es usar las transformaciones de Affine para rotar tu Vista, lo he logrado aunque no tengo el código frente a mí en este momento. Si realiza una rotación simple, encontrará que su vista se cortará y no en el centro como lo desea, lo que debe hacer aquí es establecer el ancla de su capa (juegue con el valor hasta obtener lo que desea) para que la vista aparezca donde la quieres. La forma de abordar esto es simplemente hacer la rotación de transformación afín de 90 grados y ver los efectos que tiene en la vista. De esta forma, deberías ser capaz de descubrir dónde debe estar el anclaje de las capas. Publicaré un código de muestra aquí más adelante cuando esté enfrente de mi Mac. Espero que ayude

Otros consejos

No entiendo lo que quieres decir con

  

" ... usando las máscaras de autoresizing ... "

Hice lo mismo con la animación UIIView. Hay muchas otras técnicas también disponibles. aquí está mi código:

-(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];
}   

}

// Espero que el código no necesite explicación.
// Puedes eliminar las declaraciones de animación para obtener el efecto que deseas (sin animación).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top