gpt4 book ai didi

ios - 使用 animateKeyframesWithDuration 在屏幕上创建一个连续旋转的正方形

转载 作者:IT王子 更新时间:2023-10-29 05:48:47 25 4
gpt4 key购买 nike

我尝试使用下面的代码在屏幕上创建一个连续旋转的正方形。但我不知道为什么转速在变化。我怎样才能改变代码使转速不变?我尝试了不同的 UIViewKeyframeAnimationOptions,但似乎都不起作用。

override func viewDidLoad() {
super.viewDidLoad()

let square = UIView()
square.frame = CGRect(x: 55, y: 300, width: 40, height: 40)
square.backgroundColor = UIColor.redColor()
self.view.addSubview(square)

let duration = 1.0
let delay = 0.0
let options = UIViewKeyframeAnimationOptions.Repeat
UIView.animateKeyframesWithDuration(duration, delay: delay, options: options, animations: {
let fullRotation = CGFloat(M_PI * 2)

UIView.addKeyframeWithRelativeStartTime(0, relativeDuration: 1/3, animations: {
square.transform = CGAffineTransformMakeRotation(1/3 * fullRotation)
})
UIView.addKeyframeWithRelativeStartTime(1/3, relativeDuration: 1/3, animations: {
square.transform = CGAffineTransformMakeRotation(2/3 * fullRotation)
})
UIView.addKeyframeWithRelativeStartTime(2/3, relativeDuration: 1/3, animations: {
square.transform = CGAffineTransformMakeRotation(3/3 * fullRotation)
})
}, completion: {finished in
})
}

最佳答案

我以前也遇到过同样的问题,我是这样解决的:

swift 2

let raw = UIViewKeyframeAnimationOptions.Repeat.rawValue | UIViewAnimationOptions.CurveLinear.rawValue
let options = UIViewKeyframeAnimationOptions(rawValue: raw)

swift 3、4、5

let raw = UIView.KeyframeAnimationOptions.repeat.rawValue | UIView.AnimationOptions.curveLinear.rawValue
let options = UIView.KeyframeAnimationOptions(rawValue: raw)

我在放弃之前就解决了这个问题。我不认为有关于它的文档,但它确实有效。

关于ios - 使用 animateKeyframesWithDuration 在屏幕上创建一个连续旋转的正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26665124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com