2017-04-07 102 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 

這應該防止接觸從通過它傳遞給它下面的表視圖。

相關問題