48

如果我需要旋转 a ,我该UIImageView怎么办?我有一个UIImage我想旋转 20 度的。

Apple 文档讨论了转换矩阵,但这听起来很困难。是否有任何有用的方法或功能来实现这一目标?

4

8 回答 8

110

如果要向右转,该值必须大于 0 如果要向左旋转表示该值带有符号“-”。例如-20。

CGFloat degrees = 20.0f; //the value in degrees
CGFloat radians = degrees * M_PI/180;
imageView.transform = CGAffineTransformMakeRotation(radians);

斯威夫特 4:

let degrees: CGFloat = 20.0 //the value in degrees
let radians: CGFloat = degrees * (.pi / 180)
imageView.transform = CGAffineTransform(rotationAngle: radians)
于 2012-03-15T10:46:26.517 回答
93

转换矩阵并不是非常困难。如果您使用提供的功能,这很简单:

imgView.transform = CGAffineTransformMakeRotation(.34906585);

(.34906585 是 20 度的弧度)


斯威夫特 5:

imgView.transform = CGAffineTransform(rotationAngle: .34906585)
于 2009-05-12T13:47:08.433 回答
10

斯威夫特版本:

let degrees:CGFloat = 20
myImageView.transform = CGAffineTransformMakeRotation(degrees * CGFloat(M_PI/180) )
于 2015-11-28T09:22:16.607 回答
5

斯威夫特 4.0

imageView.transform = CGAffineTransform(rotationAngle: CGFloat(20.0 * Double.pi / 180))
于 2017-10-31T09:09:05.353 回答
2

这是 Swift 3 的扩展。

extension UIImageView {

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

用法:

myImageView.rotate(degrees: 20)
于 2017-07-25T15:38:12.897 回答
1
_YourImageView.transform = CGAffineTransformMakeRotation(1.57);

其中 1.57 是 90 度的弧度值

于 2011-07-04T09:55:33.117 回答
1

这是一个更简单的格式化示例(20 度):

CGAffineTransform(rotationAngle: ((20.0 * CGFloat(M_PI)) / 180.0))
于 2017-01-20T16:19:29.333 回答
-2

据我所知,在UIAffineTransform没有第三方框架帮助的情况下,使用矩阵是实现旋转的唯一方法。

于 2009-05-12T13:46:04.987 回答