在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 :(得分: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)
答案 1 :(得分:0)
overlayView.userInteractionEnabled = true
这可以防止触摸通过它到它下面的表视图。