Как я могу повернуть UIImageView на 20 градусов? - PullRequest
46 голосов
/ 12 мая 2009

Что мне делать, если мне нужно повернуть UIImageView? У меня есть UIImage, который я хочу повернуть на 20 градусов.

Документы Apple говорят о матрице преобразования, но это звучит сложно. Есть ли полезные методы или функции для достижения этой цели?

Ответы [ 8 ]

105 голосов
/ 15 марта 2012

Если вы хотите повернуть направо, значение должно быть больше 0, если вы хотите повернуть влево, указывает значение со знаком «-». Например -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)
92 голосов
/ 12 мая 2009

Матрица преобразования не невероятно сложна. Это довольно просто, если вы используете поставляемые функции:

imgView.transform = CGAffineTransformMakeRotation(.34906585);

(34906585 - это 20 градусов в радианах)

10 голосов
/ 28 ноября 2015

Swift версия:

let degrees:CGFloat = 20
myImageView.transform = CGAffineTransformMakeRotation(degrees * CGFloat(M_PI/180) )
4 голосов
/ 31 октября 2017

Swift 4.0

imageView.transform = CGAffineTransform(rotationAngle: CGFloat(20.0 * Double.pi / 180))
2 голосов
/ 25 июля 2017

Вот расширение для Swift 3.

extension UIImageView {

    func rotate(degrees:CGFloat){
        self.transform = CGAffineTransform(rotationAngle: degrees * CGFloat(M_PI/180))
      }  
    }

Использование:

myImageView.rotate(degrees: 20)
1 голос
/ 20 января 2017

Это более простой пример форматирования (для 20 градусов):

CGAffineTransform(rotationAngle: ((20.0 * CGFloat(M_PI)) / 180.0))
1 голос
/ 04 июля 2011
_YourImageView.transform = CGAffineTransformMakeRotation(1.57);

, где 1,57 - радиан для 90 градусов

0 голосов
/ 12 мая 2009

Насколько я знаю, использование матрицы в UIAffineTransform - единственный способ добиться поворота без помощи стороннего фреймворка.

...