ios – 如何在UIKit中调试谁在吃我的东西?

我不知道为什么在我的视图中点击文本字段和按钮不起作用.我检查了所有显而易见的事情,如userInteractionEnabled是否设置为YES,是否安装了手势识别器,以及前景中是否有不可见的视图.

iOS中是否有最佳实践,用于跟踪触摸从首次出现到哪里消费?

更新:

两个答案都是有帮助的.在调查过程中,我了解到,如果子视图超出了其父级限制,即使父级没有剪辑子视图,子视图也不会收到事件.我从文字领域打印出超级视觉链,没有被触动,我看到其中一个视图的高度为0.我把一些限制拉伸出来,我的问题解决了.

解决方法

您可以继承UIWindow并覆盖 – [UIWindow sendEvent] :,然后当它被调用时,使用 – [UIWindow hitTest:withEvent:]来测试哪个视图将接收该事件.

然后,您可以调用 – [UIView recursiveDescription]打印一些调试信息,帮助您了解为什么该视图接收到触摸事件.

记得在完成后调用[super sendEvent:].

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...