【问题标题】:Properly handling touches with multiple views正确处理具有多个视图的触摸
【发布时间】: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


【解决方案1】:

我在 SVProgressHUD 中实现了touchesEnded 并在那里处理触摸。

【讨论】:

    猜你喜欢
    • 2012-01-12
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    相关资源
    最近更新 更多