【发布时间】:2021-04-09 21:37:00
【问题描述】:
我在我的 ViewController 上展示了一个 UIView,它包含一个覆盖整个视图控制器的表视图。我想在 UIView 之外点击时关闭 UIView,但没有找到任何有助于解决问题的方法。这就是我想要做的,它应该可以工作,但即使没有显示 UIView,它也不会注册触摸。有人处理过类似的问题吗?
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch: UITouch? = touches.first
if touch?.view != fullSessionView {
fullSessionView?.removeFromSuperview()
}
}
【问题讨论】:
-
小批评?如果允许我的话?您提出
UIView。此视图通常是UIViewController的一部分。 (想想 MVC。)字面上不可能呈现“覆盖整个视图控制器的表视图”。这种描述一直在发生。在你的情况下?这可能很重要……您越早了解视图与其控制器之间的区别,您就越容易了解操作系统在何处处理点击。 -
如果视图覆盖了整个屏幕,则在导航栏上添加一个按钮以将其关闭。
标签: ios swift uiview touchesbegan