iphone - 正确处理多个 View 的触摸

标签 iphone ios objective-c cocoa-touch hittest

我目前有一个项目,我在其中使用此控件显示 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/

相关文章:

ios - 使用预签名的 url 将图像上传到 s3 总是返回 403 错误

iphone - 来自 hell 的静态库路径噩梦

ios - iPad 2 Safari 显示像素化的 html 文本和图像

ios - 在 Split View的弹出式 Controller 中以 UIModalPresentationFormSheet 样式呈现的对话框在旋转后消失

objective-c - NSInvalidArgumentException 原因 Receiver 没有带标识符的 segue

iphone - 从 ruby​​ 运行 shell 脚本

ios - 如何使用滑动 iphone 应用程序控制 UITableView 编辑?

ios - SDK 8.3 不可变值...仅具有名为 'append' 的变异成员

objective-c - 带有 UITableViewController 和 Storyboard-Pop 的 NSInternalInconsistencyException

ios - 在自动布局中将 subview 的 X 居中抛出 "not prepared for the constraint"