如何防止视图后面的表格视图滚动?

时间:2017-04-07 18:19:51

标签: ios swift uitableview uiview

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

2 个答案:

答案 0 :(得分:3)

好的 - 如果你在UITableViewControllerself.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)

答案 1 :(得分:0)

overlayView.userInteractionEnabled = true

这可以防止触摸通过它到它下面的表视图。