我有一个使用界面构建器放置在屏幕中心的UIButton。
我希望动画UIButton上下移动并永远重复动画。
到目前为止,我在didMoveToView中有这个:我正在使用swift。
UIView.animateWithDuration(3, animations: { () -> Void in
self.playBtn.transform = CGAffineTransformMakeTranslation(0, 10)
self.playBtn.transform = CGAffineTransformMakeTranslation(0, -10)
self.playBtn.transform = CGAffineTransformMakeTranslation(0, -10)
self.playBtn.transform = CGAffineTransformMakeTranslation(0, 10)
UIView.setAnimationRepeatCount(-1)
})
但是它只运行第一行并将按钮向下移动10。
任何帮助将不胜感激
答案 0 :(得分:5)
您无法同时将变换更改为多个内容。我希望您的代码根本不会产生任何动画,因为多次更改变换会取消动画。
你的代码的另一个问题是,你所说的不是你要求重复动画的方式。
还有一个问题是你不会把按钮带回原点;转换不是附加的。
您需要做的是链动画。如果您下载到Core Animation并制作分组动画,这将是最简单的。
或者也可以通过做一个关键帧动画来制作视图动画;这与你想要的不一样,但它会让你开始:
let opts = UIViewKeyframeAnimationOptions.Repeat
UIView.animateKeyframesWithDuration(3, delay: 0, options: opts, animations: {
UIView.addKeyframeWithRelativeStartTime(0, relativeDuration: 0.5, animations: {
self.playBtn.transform = CGAffineTransformMakeTranslation(0, 10)
})
UIView.addKeyframeWithRelativeStartTime(0.5, relativeDuration: 0.5, animations: {
self.playBtn.transform = CGAffineTransformIdentity
})
}, completion: nil)
但实际上,如果您在进入此类事物之前了解动画的实际效果会更好。从你的代码中,我觉得你只是在吵架。