【发布时间】:2016-08-05 03:41:53
【问题描述】:
我目前正在编写一个应用程序,其中包含一个主屏幕视图控制器和一个侧边栏菜单视图,该视图在加载主屏幕时被实例化,并在单击汉堡图标时打开。我正在尝试实现在打开菜单时单击菜单外部关闭菜单并将正常功能恢复到主视图的功能,该功能在打开菜单时被禁用。
我在viewDidLoad() 中实例化了UITapGestureRecognizer,以检测用户何时点击主视图。
let tapRecognizer:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(HomeViewController.handleTap(_:)))
self.tableView.addGestureRecognizer(tapRecognizer)
下面是实现:
func handleTap(sender: UITapGestureRecognizer) {
if menu.isMenuOpen {
menu.showMenu(false)
self.tableView.allowsSelection = false
}
}
但是,点击菜单会关闭菜单,就像在菜单外点击一样。此外,由于轻击手势识别器仅识别特定轻击,因此主屏幕上的所有内容始终处于禁用状态。我在 iOS 9.3 上运行 XCode 7.3。图片: Home view controller with menu open
【问题讨论】:
标签: ios swift cocoa-touch