¿Cómo puedo girar una UIImageView 20 grados?
-
21-08-2019 - |
Pregunta
¿Qué tengo que hacer, si tengo que girar una UIImageView
? Tengo un UIImage
que quiero girar 20 grados.
Los documentos de Apple hablan de una matriz de transformación, pero que suena difícil. ¿Existen métodos votos o funciones para lograr eso?
Solución
A matriz de transformación no es increíblemente difícil. Es muy sencillo, si utiliza las funciones suministradas:
imgView.transform = CGAffineTransformMakeRotation(.34906585);
(. 34906585 es de 20 grados en radianes)
Otros consejos
Si quiere girar a la derecha, el valor debe ser mayor que 0 si desea girar a la izquierda indica el valor con el signo "-". Por ejemplo -20.
CGFloat degrees = 20.0f; //the value in degrees
CGFloat radians = degrees * M_PI/180;
imageView.transform = CGAffineTransformMakeRotation(radians);
Swift 4:
let degrees: CGFloat = 20.0 //the value in degrees
let radians: CGFloat = degrees * (.pi / 180)
imageView.transform = CGAffineTransform(rotationAngle: radians)
versión Swift:
let degrees:CGFloat = 20
myImageView.transform = CGAffineTransformMakeRotation(degrees * CGFloat(M_PI/180) )
Swift 4.0
imageView.transform = CGAffineTransform(rotationAngle: CGFloat(20.0 * Double.pi / 180))
Esto es una extensión para Swift 3.
extension UIImageView {
func rotate(degrees:CGFloat){
self.transform = CGAffineTransform(rotationAngle: degrees * CGFloat(M_PI/180))
}
}
Uso:
myImageView.rotate(degrees: 20)
_YourImageView.transform = CGAffineTransformMakeRotation(1.57);
donde 1,57 es el valor en radianes para 90 grados
Este es un ejemplo de formato más fácil (por 20 grados):
CGAffineTransform(rotationAngle: ((20.0 * CGFloat(M_PI)) / 180.0))
Por lo que yo sé, el uso de la matriz en UIAffineTransform
es la única manera de lograr una rotación sin la ayuda de un marco de terceros.