Video: Cómo girar un vídeo vertical a horizontal en iPhone y iPad | Trucos iPhone 2025
Aquí, descubres cómo rotar una vista (en este caso, voltea el auto) en tu aplicación de iOS. Para hacerlo, actualice el trozo de código de rotación con el que comenzó y reemplácelo con el código en negrita.
- (vacío) rotar { CGAffineTransform transform = CGAffineTransformMakeRotation (M_PI); void (^ animación) () = ^ () { self. coche . transformar = transformar; }; void (^ finalización) (BOOL) = ^ (BOOL finalizado) { [self returnCar]; }; [UIView animateWithDuration: 3 animaciones: finalización de la animación: finalización]; }
Este método usa las declaraciones de bloque.
La estructura de datos CGAffineTransform representa una matriz utilizada para transformaciones afines - un modelo de cómo los puntos en un sistema de coordenadas se asignan a puntos en otro sistema de coordenadas. Aunque CGAffineTransform tiene varios usos (como escalar y traducir un sistema de coordenadas), el único que se trata aquí es el método de rotación que utiliza en el Listado 10-3:
CGAffineTransformMakeRotation (M_PI)
Para rotar una vista, especifica el ángulo (en radianes) para rotar los ejes del sistema de coordenadas. Mientras que los grados son números entre 0 y 360, los radianes, aunque similares, varían de 0 a 2π. Entonces cuando creas una rotación que convierte a un objeto en un medio círculo, esa rotación en radianes es pi. (M_PI es una constante del sistema que representa pi.)
Para que su vida sea más interesante, debe tener en cuenta que en iOS, el positivo es en sentido antihorario, pero en Mac OS X, el positivo es en el sentido de las agujas del reloj.
El resultado final del listado 10-3 es que el automóvil girará 180 grados en tres segundos, y cuando termine, enviará el mensaje returnCar en el controlador de finalización.
Para devolver el automóvil a su posición original, agregue el código en negrita al trozo del método returnCar en TestDriveController. metro.
- (void) returnCar { Centro de CGPoint = CGPointMake (centro de vista propio. X, marco de vista. Propio. Marco. Tamaño. Altura - marco de automóvil auto. altura del tamaño ); void (^ animación) () = ^ () { self. coche . centro = centro; }; void (^ finalización) (BOOL) = ^ (BOOL finalizado) { [self continueRotation]; }; [UIView animateWithDuration: 3 animaciones: animación finalización: finalización]; }
Este enfoque es más o menos el mismo que el del método testDrive, excepto que el nuevo centro se coloca arbitrariamente 600 puntos por debajo de donde gira el automóvil. Usted devuelve el centro calculando la parte inferior de la vista
. ver. marco. tamaño. altura - yo.coche. marco. tamaño. altura);
Puedes experimentar con estas fórmulas para ver cómo mover el auto alrededor de la vista.
Pero aún no has terminado. Debe volver a girar el automóvil a su posición original (a menos que desee conducir en sentido inverso desde California a Nueva York). Agregue el código en negrita al trozo del método continueRotation en TestDriveController. metro.
- (void) continueRotation { CGAffineTransform transform = CGAffineTransformMakeRotation (0); void (^ animación) () = ^ () { self. coche . transformar = transformar; }; [UIView animateWithDuration: 3 animaciones: animación finalización: NULL]; }
Debe comprender que la transformación (en este caso, una rotación de vista) todavía está allí; es decir, creaste una transformación para girar el automóvil 180 grados. Si desea que el automóvil vuelva a la posición original, debe devolver la transformación a 0.