无法隐藏动画后的视图

问题描述:

我正在创建一个动画,它将图像和标签从左侧移到视图的*。无法隐藏动画后的视图

  1. imageLogo.isHidden = true当应用程序运行
  2. labelLogo不隐藏不显示在所有对我一直在阅读教程视图

,但我看不出有什么毛病我码。

let paymentLogo = UIImage(named: "paymentImage") 
var imageLogo:UIImageView! 
var overlayView = UIView() 
var logoAppeared:Bool! 
let labelLogo = UILabel() 

override func viewDidLayoutSubviews() { 
    //move picture off the screen here 

    self.imageLogo = UIImageView(image:paymentLogo) 
    imageLogo.frame = CGRect(x: 0, y: 0, width: 100, height: 100) 
    imageLogo.center.x -= 400 
    self.view.addSubview(imageLogo) 

    self.labelLogo.frame = 
     CGRect(x: 0, y: 0, width: 200, height: 21) 
    self.labelLogo.center.x -= 400 
    self.labelLogo.text = "Booking Completed" 
    self.labelLogo.textAlignment = .center 
    self.view.addSubview(labelLogo) 
} 

override func viewDidAppear(_ animated: Bool) { 
    UIView.animate(withDuration: 2.0, delay: 0.1, options: [], animations: { 
     //animate paymentCompletedLogo 
     self.overlayView = UIView(frame: self.view.frame) 
     self.overlayView.backgroundColor = UIColor.black 
     self.overlayView.alpha = 0.4 

     //animate labelLogo 
     self.labelLogo.frame = CGRect(x: self.view.center.x, y: 90, width: 200, height: 21) 
     self.labelLogo.backgroundColor = UIColor.gray 
     self.labelLogo.text = "Booking Completed" 
     self.labelLogo.textColor = .black 
     self.labelLogo.textAlignment = .center 

     //animate imageLogo 
     self.imageLogo.frame = 
      CGRect(x: self.view.center.x,y: self.view.center.y,width: 100,height: 100) 

     self.view.addSubview(self.overlayView) 
     self.view.addSubview(self.imageLogo) 
     self.view.addSubview(self.labelLogo) 
    }) { finished in 
     self.overlayView.isHidden = true 
     self.imageLogo.isHidden = true //it is not hidden in simulator 

     self.logoAppeared = true 
    } 
} 

我试图从动画方法中删除以下代码,它工作正常。 您正试图在动画方法中添加子视图。 imageLogo和labelLogo都已准备好添加到视图中。

self.view.addSubview(self.overlayView) 
    self.view.addSubview(self.imageLogo) 
    self.view.addSubview(self.labelLogo)