2011-07-25 11 views

Respuesta

12

debería ser posible mediante el uso de CGAffineTransform

Presupuesto de this question, esto debería hacer el truco:

CGFloat radians = atan2f(yourView.transform.b, yourView.transform.a); 
CGFloat degrees = radians * (180/M_PI); 
CGAffineTransform transform = CGAffineTransformMakeRotation((90 + degrees) * M_PI/180); 
yourView.transform = transform; 
+1

Esto lo gira 90 grados. Si desea rotarlo 180 grados, la última línea debería ser 'CGAffineTransformMakeRotation ((' '180 **' + degrees) * M_PI/180) 'en lugar de 90 –

4

mismo resultado que la respuesta de @ Manny utilizando una función diferente.

CGFloat degreesOfRotation = 180.0; 
view.transform = CGAffineTransformRotate(view.transform, 
    degreesOfRotation * M_PI/180.0); 
25

Como 'CGAffineTransformRotate' radianes utiliza como unidad de medida, y 180 grados es el mismo que el PI, en lugar de las matemáticas siempre y en otras respuestas sólo tiene que hacer:

view.transform = CGAffineTransformRotate(view.transform, M_PI); 

Swift 3:

view.transform = view.transform.rotated(by: .pi) 

Si usted planea hacer una gran cantidad de transformaciones, es probablemente la mejor manera de leer en radianes, por lo que entender lo que es goi ng on.

6

solución simple:

view.transform = CGAffineTransformMakeRotation(degrees*M_PI/180); 
4

En Swift 3:

let rotationDegrees = 180.0 
let rotationAngle = CGFloat(rotationDegrees * M_PI/180.0) 
view.transform = CGAffineTransform(rotationAngle: rotationAngle) 
0

reciente Swift 3 sintaxis:

view.transform = view.transform.rotated(by: .pi) 
0

Swift 4:

self.view.transform = CGAffineTransform(rotationAngle: .pi); 

y una nota (I, evidentemente, no tienen suficientes puntos para entrar en mi comentario sobre su/su respuesta) para Benjamin Mayo o vtcajones respuesta de:

view.transform = view.transform.rotated(by: .pi) 

Esto funcionará la primera vez, pero la próxima vez que se llame, rotará la vista de nuevo, volviendo a la rotación original, que probablemente no sea la que desea. Sería más seguro establecer el valor de transformación exactamente cada vez.

Cuestiones relacionadas