首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift中的UIAnimation重复问题

Swift中的UIAnimation重复问题
EN

Stack Overflow用户
提问于 2016-05-26 06:40:04
回答 1查看 99关注 0票数 0

我的项目中有一个简单的UIButton,在按钮内运行动画块。基本上,我有一个连接到另外两个子按钮的mainButton。当mainButton被按下时,我的subButtons将出现在带有动画的视图中。我使用以下代码。

代码语言:javascript
复制
@IBOutlet weak var mainButton: UIButton!
@IBOutlet weak var subButton1: UIButton!
@IBOutlet weak var subButton2: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

     subButton1.hidden = true
     subButton2.hidden = true
}

 //    override func viewDidAppear(animated: Bool) {
 //        subButton1.hidden = true
 //        subButton2.hidden = true
 //    }

@IBAction func mainButtonAction(sender: AnyObject) {

     self.subButton1.hidden = false
     self.subButton2.hidden = false

     self.subButton1.center.x += self.view.frame.width
     self.subButton2.center.x -= self.view.frame.width

     //First Piece of Animation:
     UIView.animateWithDuration(1.5, delay: 0.05,usingSpringWithDamping: 0.9,initialSpringVelocity: 0.5, options:UIViewAnimationOptions.CurveEaseIn, animations: {

     self.subButton1.center.x -= self.view.frame.width
     self.subButton2.center.x += self.view.frame.width

        }, completion: {finished in 

      //Second Piece of Animation:       
     UIView.animateWithDuration(1.5, delay: 5, options:UIViewAnimationOptions.CurveEaseOut, animations: {

     self.subButton1.center.x += self.view.frame.width 
     self.subButton2.center.x -= self.view.frame.width

     }, completion:  nil)
     })
     }

上面的代码可以像我希望的那样工作,但只有当我第一次按下mainButton时才能工作。但是,问题是,当我再次按下mainButton时,什么都不会发生。我希望每次按mainButton时动画都会出现.

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-26 06:55:21

你在动画出现和消失的时间上有问题。动画的两个部分都运行良好。如果您提前单击该按钮,则该按钮的X位置出现问题。请注意,如果您对“动画片段”的评论,您的代码工作良好。您可以打印X值并查看正在发生的事情。

没有几种选择:

  1. 在两个人之间切换。
  2. 创建一个起点,当按下按钮时: 类ViewController: UIViewController { var intialPointXButton1: CGFloat =0.0var intialPointXButton2: CGFloat = 0.0 .
  3. 在动画运行时禁用该按钮: @IBAction (发件人: AnyObject) {sel.subButton1.隐含=假自。subButton2.隐含=假自我。subButton1.cent.x += self.view.frame.width delay.subButton2.cent.x -= self.view.frame.width self.mainButton.enabled = false //禁用主按钮//第一张动画: UIView.animateWithDuration(1.5,延迟: 0.05,usingSpringWithDamping: 0.9,initialSpringVelocity: 0.5,options:UIViewAnimationOptions.CurveEaseIn,动画:{Sel.subButton1.cent.x -= self.view.frame.width delay.subButton2.cent.x += self.view.frame.width },完成:{finished in //第二张动画: UIView.animateWithDuration(1.5,延迟: 5,options:UIViewAnimationOptions.CurveEaseOut,动画:{Sel.subButton1.cent.x += self.view.frame.width delay.subButton2.cent.x -= self.view.frame.width },完成:{ self.mainButton.enabled = true //启用主按钮}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37453328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档