touchesBegan:withEvent:方法不被调用

在学习iOS编程的时候,遇到自定义UIView的touchesBegan:withEvent:方法不被调用的问题,困在这里很久,直到后来在网上看到一个同样遇到这个问题的人的解决方法才知道问题出在rootViewController上,原始代码如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.rootViewController = [[UIViewController alloc]init];

    CGRect firstFrame = self.window.bounds;
    BNRHypnosisView *firstView = [[BNRHypnosisView alloc]
                                  initWithFrame:firstFrame];
    
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window addSubview:firstView];
    [self.window makeKeyAndVisible];
    return YES;
}
Jietu20171017-201036@2x.jpg

根据官方文档对rootViewController的解释,rootViewController会给window设定一个content View,也是UIView类,所以将我自定义的UIView给遮挡了,导致无法触发touchesBegan事件,解决方法是在将自定义UIView添加入window时应该添加在content View上,代码如下

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.rootViewController = [[UIViewController alloc]init];

    CGRect firstFrame = self.window.bounds;
    BNRHypnosisView *firstView = [[BNRHypnosisView alloc]
                                  initWithFrame:firstFrame];
    
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window.rootViewController.view addSubview:firstView];
    [self.window makeKeyAndVisible];
    return YES;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 好奇触摸事件是如何从屏幕转移到APP内的?困惑于Cell怎么突然不能点击了?纠结于如何实现这个奇葩响应需求?亦或是...
    Lotheve阅读 58,325评论 51 603
  • 在iOS开发中经常会涉及到触摸事件。本想自己总结一下,但是遇到了这篇文章,感觉总结的已经很到位,特此转载。作者:L...
    WQ_UESTC阅读 6,148评论 4 26
  • -- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实...
    翘楚iOS9阅读 3,016评论 0 13
  • 废话不多说,直接上干货 ---------------------------------------------...
    小小赵纸农阅读 3,465评论 0 15
  • 【奢毒】 一截断肠埋在烟台上发芽 束秋的稻梗悬挂成古木桠 那混杂清荷雨拍打的乐章 跟飘开去的星光一样奢华 在目光穿...
    清风陌然阅读 921评论 0 1