如何通过它呈现视图时掩盖的ViewController

问题描述:

我试图掩盖的ViewController当我this screenshot.呈现视图像我提出我的看法的方式由固定在屏幕这样的外:如何通过它呈现视图时掩盖的ViewController

addContactTopAnchor = addContact.bottomAnchor.constraint(equalTo: 
view.topAnchor) 
addContactTopAnchor.isActive = true 
addContact.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true 
addContact.heightAnchor.constraint(equalToConstant: 182).isActive = true 

,当我按下一个按钮,我将其移动到显示器上是这样的:

func addTapped(){ 
     self.addContactTopAnchor.isActive = false 
     self.addContactTopAnchor = addContact.bottomAnchor.constraint(equalTo: view.topAnchor, constant: 182) 
     self.addContactTopAnchor.isActive = true 
     UIView.animate(withDuration: 0.3, animations: {() -> Void in 
      self.view.layoutIfNeeded() 
     }) 
    } 

我想掩盖一切,除了视图就像它在我的截图显示。

+1

在您的动画块中放置一个透明的黑色UIView并将其设置为alpha?完成后不要忘记删除视图。 – Desdenova

+0

我试过这个,但面具也覆盖了我正在动画的视图,有没有一种方法可以让我把这个视图放在我用作面具的顶部? – RickS

+1

其实我只是想通了,谢谢,我能够把它带到前台self.view.bringSubview(toFront:self.addContact) – RickS

我创建的视图

let mask: UIView = { 
    let view = UIView() 
    view.backgroundColor = .black 
    view.alpha = 0 
    return view 
}() 

在我的按钮按压,我设置的α和把我的视图到前

func addTapped() { 
    self.addContactTopAnchor.isActive = false 
    self.addContactTopAnchor = addContact.topAnchor.constraint(equalTo: view.bottomAnchor, constant: -182) 
    self.addContactTopAnchor.isActive = true 
    UIView.animate(withDuration: 0.3, animations: {() -> Void in 
     self.view.layoutIfNeeded() 
     self.mask.alpha = 0.5 
     self.navigationController?.navigationBar.alpha = 0.5 
     self.navigationController?.navigationBar.shadowImage = UIImage() 
     self.view.bringSubview(toFront: self.addContact) 
    }) 
} 

编辑:此外,我已将此添加掩蔽导航栏:

 self.navigationController?.navigationBar.alpha = 0.5 
     self.navigationController?.navigationBar.shadowImage = UIImage() 

感谢@desdenova的帮助