2017-02-10 73 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原來的問題。

回答

相關問題