让我们通过UIView或UIWindow进行操作

时间:2013-07-09 18:35:48

标签: ios uiview uiwindow touches

我在屏幕顶部添加了一个UIView / UIWindow。

UIWindow *statusBarWindow = [[UIWindow alloc] initWithFrame:[UIApplication sharedApplication].statusBarFrame];
statusBarWindow.windowLevel = UIWindowLevelStatusBar + 1;
statusBarWindow.userInteractionEnabled = NO;
[statusBarWindow makeKeyAndVisible];

但是这些观点不应该是可触摸的,触及它应触发对这些观点的触摸。现在,当我添加此视图并且没有任何反应时,触摸不会通过。

如何让UIView / UIWindow不处理触摸事件?

我尝试了.userInteractionEnabled = NO但是没有用。谢谢!

1 个答案:

答案 0 :(得分:1)

一种方法是覆盖-hitTest:withEvent:以在您不想回复触摸的视图中返回NO

最好使用不是此窗口的视图,以便superview的hitTest:withEvent:方法将继续搜索视图层次结构并找到该位置的下一个视图。 (Windows没有超级视图,我不确定事件管理器是否会检查同一事件的其他窗口。)