Pregunta

Necesito rotar la imagen varias veces en 90 grados. Estoy usando el siguiente código,

CGAffineTransform transform = CGAffineTransformMakeRotation(PI/2);
shape.transform = transform;

aquí forma mi UIImageview.

El problema es que cada vez que hago clic en el botón de rotación, lo gira desde su posición original, que no es lo que quiero. Me gustaría rotar desde la nueva posición.

Soy nuevo en la programación de iPhone, disculpas si me falta algo muy básico y gracias de antemano por su ayuda.

Kedar

¿Fue útil?

Solución

Si está intentando animar esta rotación, puede leer mi respuesta a esta pregunta , donde alguien estaba intentando Animar una rotación incremental de una vista. Resulta que la animación incremental de una transformación utilizando CABasicAnimations es un poco más complicada de lo que cabría esperar. Primero debe leer la transformación actual de la capa de UIView desde su PresentationLayer, luego ingrese eso en su animación como el fromValue.

Sin embargo, en su caso, parece que está utilizando un bloque de animación UIView para animar la propiedad de transformación de su vista. El código tal como lo ha escrito solo mantendría la transformación de su vista en la misma rotación de 90 grados, no giraría la vista gradualmente en pasos de 90 grados. Para hacer una rotación incremental, creo que necesitarías algo como lo siguiente:

CGAffineTransform transform = CGAffineTransformRotate(shape.transform, M_PI / 2.0f);
shape.transform = transform;

que capturará la transformación actual de la vista, la girará 90 grados y luego aplicará la transformación resultante a la vista. Nuevamente, esto puede tener los mismos problemas que con CABasicAnimations, en cuyo caso debe consultar la respuesta que se encuentra arriba.

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