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?

¿Fue útil?

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.

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