我目前有一个项目,我使用此控件呈现HUD:
https://github.com/samvermette/SVProgressHUD
我在一个复杂的UIViews和ScrollViews层次结构中展示了SVProgress HUD。
SVProgressHUD有点像UIAlertView,它会显示一条消息,但它会自动解散。
在我的应用程序的一部分中,每次用户弹出UIScrollView中的页面时,我都会使用它。
autodismiss功能很好但我希望用户能够点击hud并在需要时提前解除它。
所以我知道SVProgressHUD会向通知中心发布通知
SVProgressHUDDidReceiveTouchEventNotification
这很好,我所做的就是在我的主viewController中添加一个通知观察器,它在SVProgressHUD上调用一个类方法,在发布SVProgressHUDDidReceiveTouchEventNotification
时解除任何呈现的HUD。
我的问题(和问题是)如何确保此解除方法不会干扰我的滚动视图?
我希望我的用户能够快速浏览滚动视图内容页面,但是自从我开始收听此通知后,滚动视图不会对用户的第一次触摸做出反应,它会使用第一次触摸解雇HUD。这感觉非常笨重。
问题是SVProgressHUDDidReceiveTouchEventNotification
正在发布,即使未触摸HUD,而是触摸下方的Scrollview。如何在我的dismiss方法中添加一个hittest来检查是否因为HUD本身被触摸而发布SVProgressHUDDidReceiveTouchEventNotification
?
谢谢!
答案 0 :(得分:1)
我在 SVProgressHUD 中实施了touchesEnded
并处理那里的触摸。