2017-04-07 90 views
0

TableViewController中,我有一个带有消息的半透明叠加视图。覆盖图正确显示在TableViewController上,但我仍然可以在此覆盖视图后面滚动表格视图。当覆盖层位于顶层时,我该如何防止滚动?如何防止视图后面的表视图滚动?

我构建了我的自定义视图叠加在我TableViewController

override func viewDidLoad() { 
    super.viewDidLoad() 

    loadData(
     id, 
     success: {(doc) ->() in 
      let frame = CGRect(x: 0, y: 0, width: self.view.bounds.size.width, height: self.view.bounds.size.height) 

      let overlayView = EmptyCollectionView(frame : frame) 
      overlayView.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.8) 
      self.view.addSubview(overlayView) 

      self.tableView.reloadData() 
     }, 
     error: {..}) 
} 

我试图self.tableView.isUserInteractionEnabled = false

+0

嗯有些东西似乎错了...你在哪里添加视图层次结构? – DonMag

+0

@DonMag我更新了代码,以反映何时添加覆盖查看 –

+0

我们需要知道self.view和self.tableview之间的关系 –

回答

3

好的 - 如果你是在UITableViewController,self.view是指UITableView本身。你想你的OverlayView的添加为表视图的上海华盈的子视图...

试试这个:

tableView.superview?.addSubview(overlayView) 

可以简化一些事情,以及,你应该实现尺寸控制来处理这种变化作为设备旋转:

let overlayView = EmptyCollectionView(frame: tableView.frame) 

overlayView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 

overlayView.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.8) 

tableView.superview?.addSubview(overlayView) 
0
overlayView.userInteractionEnabled = true 

这应该防止接触从通过它传递给它下面的表视图。