如何将 UIImageView 旋转 20 度?
Posted
技术标签:
【中文标题】如何将 UIImageView 旋转 20 度?【英文标题】:How can I rotate an UIImageView by 20 degrees? 【发布时间】:2009-05-12 13:43:26 【问题描述】:如果我需要旋转UIImageView
,我该怎么办?我有一个UIImage
,我想将其旋转 20 度。
Apple 文档谈到了转换矩阵,但这听起来很困难。有什么有用的方法或功能可以实现吗?
【问题讨论】:
【参考方案1】:如果要向右转,该值必须大于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)
【讨论】:
这应该打勾,它是迄今为止最好的答案! 度数转换是一个非常好的加分项,这应该是最好的! 绝对是最好的!【参考方案2】:转换矩阵并不难。如果您使用提供的功能,这很简单:
imgView.transform = CGAffineTransformMakeRotation(.34906585);
(.34906585 的弧度为 20 度)
斯威夫特 5:
imgView.transform = CGAffineTransform(rotationAngle: .34906585)
【讨论】:
谢谢!而且我真的认为它很复杂,只是因为“变换矩阵”;)【参考方案3】:Swift 版本:
let degrees:CGFloat = 20
myImageView.transform = CGAffineTransformMakeRotation(degrees * CGFloat(M_PI/180) )
【讨论】:
同样的代码(let 除外)也适用于 Objective-c。【参考方案4】:Swift 4.0
imageView.transform = CGAffineTransform(rotationAngle: CGFloat(20.0 * Double.pi / 180))
【讨论】:
【参考方案5】:这是 Swift 3 的扩展。
extension UIImageView
func rotate(degrees:CGFloat)
self.transform = CGAffineTransform(rotationAngle: degrees * CGFloat(M_PI/180))
用法:
myImageView.rotate(degrees: 20)
【讨论】:
【参考方案6】: _YourImageView.transform = CGAffineTransformMakeRotation(1.57);其中 1.57 是 90 度的弧度值
【讨论】:
【参考方案7】:这是一个更简单的格式化示例(20 度):
CGAffineTransform(rotationAngle: ((20.0 * CGFloat(M_PI)) / 180.0))
【讨论】:
【参考方案8】:据我所知,使用UIAffineTransform
中的矩阵是在没有第三方框架帮助的情况下实现旋转的唯一方法。
【讨论】:
以上是关于如何将 UIImageView 旋转 20 度?的主要内容,如果未能解决你的问题,请参考以下文章
使用 CGAffineTransform 旋转后更新 UIImageView 框架时出现奇怪的挤压
如何使用 TouchesMoved 旋转 UIImageView