Ios 多个UIView动画
我有一个UIButton,我使用interface builder将它放在屏幕中央 我想设置UIButton的动画,使其上下移动,并永远重复动画 到目前为止,我在didMoveToView中有这样一个观点:我正在使用swiftIos 多个UIView动画,ios,xcode,swift,uiview,uiviewcontroller,Ios,Xcode,Swift,Uiview,Uiviewcontroller,我有一个UIButton,我使用interface builder将它放在屏幕中央 我想设置UIButton的动画,使其上下移动,并永远重复动画 到目前为止,我在didMoveToView中有这样一个观点:我正在使用swift UIView.animateWithDuration(3, animations: { () -> Void in self.playBtn.transform = CGAffineTransformMakeTranslation(0, 10)
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
任何帮助都将不胜感激您不能同时将转换更改为多个内容。我希望您的代码不会导致任何动画,因为多次更改变换将取消动画 代码的另一个问题是,您所说的不是如何要求重复动画 还有一个问题是,你永远不会把按钮带回到它的起始位置;这些变换不是相加的 您需要做的是将动画链接在一起。这将是最容易的,如果您下拉到核心动画,并使一个分组动画 或者可以通过制作关键帧动画来查看动画;这与您想要的不同,但它会让您开始: Swift 2
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)
Swift 3,4,5
let opts = UIView.KeyframeAnimationOptions.repeat
UIView.animateKeyframes(withDuration: 3, delay: 0, options: opts, animations: {
UIView.addKeyframe(withRelativeStartTime: 0, relativeDuration: 0.5, animations: {
self.playBtn.transform = CGAffineTransform(translationX: 0, y: 10)
})
UIView.addKeyframe(withRelativeStartTime: 0.5, relativeDuration: 0.5, animations: {
self.playBtn.transform = CGAffineTransform.identity
})
}, completion: nil)
但事实上,如果你在进入这类领域之前就知道动画是如何工作的,那就更好了。从您的代码中,我觉得您只是在颠簸。您不能同时将转换更改为多个内容。我希望您的代码不会导致任何动画,因为多次更改变换将取消动画 代码的另一个问题是,您所说的不是如何要求重复动画 还有一个问题是,你永远不会把按钮带回到它的起始位置;这些变换不是相加的 您需要做的是将动画链接在一起。这将是最容易的,如果您下拉到核心动画,并使一个分组动画 或者可以通过制作关键帧动画来查看动画;这与您想要的不同,但它会让您开始: Swift 2
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)
Swift 3,4,5
let opts = UIView.KeyframeAnimationOptions.repeat
UIView.animateKeyframes(withDuration: 3, delay: 0, options: opts, animations: {
UIView.addKeyframe(withRelativeStartTime: 0, relativeDuration: 0.5, animations: {
self.playBtn.transform = CGAffineTransform(translationX: 0, y: 10)
})
UIView.addKeyframe(withRelativeStartTime: 0.5, relativeDuration: 0.5, animations: {
self.playBtn.transform = CGAffineTransform.identity
})
}, completion: nil)
但事实上,如果你在进入这类领域之前就知道动画是如何工作的,那就更好了。从你的代码来看,我觉得你只是在捣乱