触摸响应事件ios4

问题描述:

我添加了ViewController到应用程序的广告横幅支持。该应用程序基于UINavigationController,因此我将ViewController作为子视图添加到UINavigationController中。现在,广告横幅区域无法识别在Safari中何时触摸广告。我试图让ViewController成为FirstFoundResponder,但这不起作用。有没有人有任何想法如何解决?触摸响应事件ios4

你说你添加它作为一个子视图,但我希望你的意思是你

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated

您的视图控制器推它,因为它是一个UIResponder可以对事件做出回应。 UIView,因此大多数可视化控件,如UIButton,UISlider等也从UIResponder继承 - 但它们实现了基于用户交互的特定操作。

如果你真的想在UIViewController中拦截事件,你需要处理touchesBegan/Moved/Ended事件。更有可能你在视图控制器中至少有一个UIWebView或UIImageView,如果它显示你想要点击的东西。

如果一个UIWebView你需要实现

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 

会让你知道被打开什么链接UIWebViewDelegate。

如果在看到任何触摸事件之前,您还需要设置属性userInteractionEnabled

如果您正在处理iAd的AdBannerView类,它也从UIView继承,所以对UIImageView的注释也适用。但是,ADBannerViewDelegate是内置交互支持的要求 - 就像UIWebViewDelegate一样,您必须实现许可/通知功能,

- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave