CGAffineTransform MakeRotation iOS 7 帧更改错误修复
CGAffineTransformMakeRotation iOS 7 frame change bug fix
CGAffineTransformMakeRotation()
在 iOS 7 上尝试将对象(标签、按钮等)旋转到不同于 90、180、360 等的角度时会产生一个奇怪的错误
从 iOS 8 开始,错误消失了。
修复在下面的答案中。
此错误的修复是在 层 上应用 CABasicAnimation
,而不是在 视图 [= 上应用 CGAffineTransformMakeRotation
22=] 的按钮。
出于某种原因,当您将它应用于视图时,它会扰乱框架和自动版式。更多信息 here.
以下是实施此修复的方法:
let animation = CABasicAnimation(keyPath: "transform.rotation")
animation.autoreverses = false
animation.duration = 0.3
animation.fromValue = 0
animation.fillMode = kCAFillModeForwards
animation.removedOnCompletion = false
animation.toValue = 3.14/4 // 45 degrees
self.myButton.layer.addAnimation(animation, forKey: "45rotation")
CGAffineTransformMakeRotation()
在 iOS 7 上尝试将对象(标签、按钮等)旋转到不同于 90、180、360 等的角度时会产生一个奇怪的错误
从 iOS 8 开始,错误消失了。
修复在下面的答案中。
此错误的修复是在 层 上应用 CABasicAnimation
,而不是在 视图 [= 上应用 CGAffineTransformMakeRotation
22=] 的按钮。
出于某种原因,当您将它应用于视图时,它会扰乱框架和自动版式。更多信息 here.
以下是实施此修复的方法:
let animation = CABasicAnimation(keyPath: "transform.rotation")
animation.autoreverses = false
animation.duration = 0.3
animation.fromValue = 0
animation.fillMode = kCAFillModeForwards
animation.removedOnCompletion = false
animation.toValue = 3.14/4 // 45 degrees
self.myButton.layer.addAnimation(animation, forKey: "45rotation")