【发布时间】:2013-07-20 09:54:38
【问题描述】:
我目前有一个项目,我使用此控件展示 HUD:
https://github.com/samvermette/SVProgressHUD
我在 UIView 和 ScrollView 的复杂层次结构上呈现 SVProgress HUD。
SVProgressHUD 有点像 UIAlertView,它会显示一条消息,但会自动关闭。
在我的应用程序的一部分中,每次用户在我的 UIScrollView 中弹出一个页面时,我都会使用它。
自动关闭功能很好,但我希望用户能够在需要时点击 hud 并尽早关闭它。
所以我知道 SVProgressHUD 会向通知中心发布通知
SVProgressHUDDidReceiveTouchEventNotification
这很好,我所做的是在我的主视图控制器中添加一个通知观察者,它调用 SVProgressHUD 上的一个类方法以在发布 SVProgressHUDDidReceiveTouchEventNotification 时关闭任何呈现的 HUD。
我的问题(和问题是)如何确保这种关闭方法不会干扰我的滚动视图?
我希望我的用户能够快速浏览滚动视图内容页面,但是由于我开始收听此通知,滚动视图不会对用户的第一次触摸做出反应,它使用第一次触摸以关闭 HUD。这感觉很笨拙。
问题是SVProgressHUDDidReceiveTouchEventNotification 正在发布,即使 HUD 没有被触动,而是我下面的 Scrollview 被触动了。如何在我的解除方法中添加一个 hittest 来检查 SVProgressHUDDidReceiveTouchEventNotification 是否因为 HUD 本身被触摸而被发布?
谢谢!
【问题讨论】:
-
你试过调用dissmiss函数吗?
标签: iphone ios objective-c cocoa-touch hittest