AVISO: Cualquier pregunta que no cumpla ninguno de estos criterios podrá ser borrada sin previo aviso.

1
1

Buenas gente,

Estoy haciendo una especie de ruleta. Me he creado una clase que hereda de UIView y quiero hacerla girar. He estado bregando con Core Graphics y he mirado algo de Core Animation y aún no me aclaro.

¿Cómo haríais vosotros para girar un UIView sobre sí mismo?

preguntado 27 Abr '11, 00:07

juanmac's gravatar image

juanmac ♦
3.0k334181

cerró 29 Abr '11, 13:37

La pregunta ha sido cerrado por el siguiente motivo "La pregunta esta respondida, con respuesta aceptada." por La pregunta ha sido cerrado por la siguiente razón "La pregunta esta respondida, con respuesta aceptada." by juanmac 29 Abr '11, 13:37


Bueno, para empezar, pongamos que tu imagen la pones en una CALayer cuadrada, para simplificar las cosas. Defines el anchorPoint en el punto central, ya que será el punto sobre el que rotará.

Para rotar el layer en sí, debes asignarle un transform adecuado. Puedes hacerlo con CATransform3DRotate, pero dado que vas a animar esta transformación, es más práctico que uses propiedades animables:

[UIView beginAnimations:@"rotación" context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationDelegate:self];
[myLayer setValue:[NSNumber numberWithInt:angulo] forKeyPath:@"transform.rotation.x"]; // en radianes
[UIView commitAnimations];

Con esto deberías tener para empezar.

enlace permanente

respondido 27 Abr '11, 10:24

victor's gravatar image

victor
2.9k51248

Abro otra pregunta que contiene a esta... :P

(29 Abr '11, 13:33) juanmac ♦

Prueba con

myView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, angulo en radianes);

Esa sentencia te rotará X grados en radianes la vista pero siempre partiendo desde la posición inicial, por lo de CGAffineTransformIdentity. Si quieres que se vaya rotando según la posición anterior debes ir guardando la transformación que tenga aplicada en el momento de rotar y pasársela como primer parámetro al CGAffineTransformRotate().

enlace permanente

respondido 27 Abr '11, 10:19

emenegro's gravatar image

emenegro
3.7k163264