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