如何在UITableViewController上添加一个禁用用户交互的模式视图

问题描述:

我希望能够在我的表视图前添加一个模式视图,该视图是相对于视图而不是相对于视图显示的表格视图(如图所示)1。另外我该如何防止用户与表格交互。我还包含了用于为我的视图添加动画的代码。提前致谢!如何在UITableViewController上添加一个禁用用户交互的模式视图

func newPersonAnimateIn() { 
    self.overlayView.transform = CGAffineTransform.identity 
    self.view.addSubview(overlayView) 

    overlayView.center = self.view.center 
    overlayView.transform = CGAffineTransform.init(scaleX: 1.3, y: 1.3) 
    overlayView.alpha = 0 

    UIView.animate(withDuration: 0.4) { 
     //self.visualEffectView.effect = self.effectHolder 
     self.overlayView.alpha = 1 
     self.overlayView.transform = CGAffineTransform.identity 
    } 
    personName.becomeFirstResponder() 
} 

func newPersonAnimateOut() { 
    self.view.endEditing(true) 
    UIView.animate(withDuration: 0.3, animations: { 
     self.overlayView.alpha = 0 
     self.overlayView.transform = CGAffineTransform.identity 
    }){(success:Bool) in 
     self.overlayView.removeFromSuperview() 
    } 
    personName.text = "" 
} 

@IBAction func addPerson(_ sender: UIBarButtonItem) { 
    newPersonAnimateIn() 
} 

@IBAction func continueButton(_ sender: Any) { 
    newPersonAnimateOut() 
} 

也许这将是不够的:

self.tableView.isUserInteractionEnabled = false 

或创建模式视图下的另一个观点,即覆盖全屏幕,并设置isUserInteractionEnabled =假

+0

也许一个重要的评论:不要做这样的视图与alpha == 0.0它应该是比零更多的东西。 (1.0 ==完全不透明) –

+0

感谢您的回应和反馈,这些都可以按需使用! –