ios - 如何在显示 View 时屏蔽 ViewController

标签 ios swift swift3

当我呈现像 this screenshot. 中那样的 View 时,我试图屏蔽 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()
        })
    }

我想屏蔽除 View 之外的所有内容,就像它在我的屏幕截图中显示的那样。

最佳答案

我创建了一个 View

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

在我按下按钮时,我设置了 alpha 并将我的 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 的帮助

关于ios - 如何在显示 View 时屏蔽 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45104857/

相关文章:

iphone - 如何在 iphone 中设置多个带通知的闹钟

ios - 在 native 应用程序中访问 package.json 版本和构建变量的最佳方法?

ios - Xcode Swift SpriteKit 背景颜色(幕后)

ios - 界面测试失败 : Multiple Matches Found Error

ios - 在 webViewDidFinishLoad 上,我在 swift3 中获得了额外的内容高度

ios - 如何在 swift 中将 switch 语句控制表达式与其模式进行比较?

ios - 应用程序找出当前是哪一天并计算用户选择的第二天的时间

ios - gestureRecognizer 不适用于添加的 subview

ios - 如何使用 Swift 在 iOS 上获取 ISO 639-2 国家代码

ios - 我可以删除 Library 下的整个开发者文件夹吗