2017-02-10 75 views
0

我有4个按钮,都使用同样的动画FUNC为什么UIView和UIImageView有不同的动画效果?

  • imageViewWithoutDelay
  • imageViewWithDelay
  • ViewWithoutDelay
  • ViewWithDelay

我的代码:

import UIKit 

class ViewController: UIViewController { 

    @IBAction func imageViewithoutDelay(_ sender: AnyObject) { 
     let circleImage = UIImageView() 
     // kindly add your own image. 
     circleImage.image = UIImage(named: "empty") 
     animate(inputView: circleImage, delay: false) 
    } 

    @IBAction func imageViewWithDelay(_ sender: UIButton) { 

     let circleImage = UIImageView() 
     circleImage.image = UIImage(named: "empty") 
     animate(inputView: circleImage, delay: true) 
    } 

    func animate(inputView : UIView, delay: Bool){ 

     inputView.layer.cornerRadius = inputView.frame.size.width/2 
     inputView.clipsToBounds = true 
     inputView.translatesAutoresizingMaskIntoConstraints = false 
     view.addSubview(inputView) 

     let screenSize = UIScreen.main.bounds 
     let screenHeight = screenSize.height * 0.10 
     inputView.center.y = screenHeight 
     view.setNeedsLayout() 
     view.setNeedsDisplay() 

     if delay == true{ 
     DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1), execute: { 
      UIView.animate(withDuration: 2.5, animations: { 
       inputView.alpha = 0.0 
       let screenSize = UIScreen.main.bounds 
       let screenHeight = screenSize.height * 0.10 
       inputView.center.y -= screenHeight 
      }) 
     })} else{ 
      UIView.animate(withDuration: 2.5, animations: { 
       inputView.alpha = 0.0 
       let screenSize = UIScreen.main.bounds 
       let screenHeight = screenSize.height * 0.10 
       inputView.center.y -= screenHeight 
      }) 

     } 

    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

} 

让我感到有趣的是UIview & UIImageView的不同行为。

UIImageView实例仅动画按预期(从起点上升如果我使用的延迟。但是,如果不使用延迟块,则UIImageView实例首先下降,然后动画将上升至原点)。

UIView不显示不同的行为。它从起源开始动起来,并上升。

enter image description here 这是一个错误?

这个问题是一个切线this原来的问题。

回答

相关问题