我目前有一个项目,我在其中使用此控件显示 HUD:
https://github.com/samvermette/SVProgressHUD
我在复杂的 UIView 和 ScrollView 层次结构上展示 SVProgress HUD。
SVProgressHUD 有点像 UIAlertView,它会显示一条消息但会自动关闭。
在我的应用程序的一部分中,每次用户在我的 UIScrollView 中弹出一个页面时,我都会使用它。
自动关闭功能很好,但我希望用户能够点击 HUD 并在需要时提前关闭它。
所以我知道 SVProgressHUD 向通知中心发布通知
SVProgressHUDDidReceiveTouchEventNotification
这很好,我所做的是在我的主 viewController 中添加一个通知观察器,它调用 SVProgressHUD 上的类方法以在发布 SVProgressHUDDidReceiveTouchEventNotification
时关闭任何显示的 HUD。
我的问题(和问题是)如何确保这个 dismiss 方法不会干扰我的 ScrollView ?
我希望我的用户能够快速浏览 scrollview 内容页面,但是自从我开始收听此通知后,scrollview 不会对用户的第一次 触摸使用react,它使用第一次触摸以关闭 HUD。这感觉很笨拙。
问题是 SVProgressHUDDidReceiveTouchEventNotification
正在发布,即使 HUD 未被触及,而是我下方的 Scrollview 被触及。我如何在我的 dismiss 方法中添加一个 hittest 以检查 SVProgressHUDDidReceiveTouchEventNotification
是否因为 HUD 本身被触摸而被发布?
谢谢!
最佳答案
我在 SVProgressHUD 中实现了 touchesEnded
并在那里处理触摸。
关于iphone - 正确处理多个 View 的触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17760955/