我正在尝试识别iPhone / iPad状态栏中的触摸。所以,我重载了UIApplication,在sendEvent中,我执行了点击的UIView的NSLog。我明白了:
<UIStatusBarForegroundView: 0x4e8b9d0; frame = (0 0; 768 20); alpha = 0.75; autoresize = W; layer = <CALayer: 0x4e8ba90>>
如何将此视图用于此视图的标识符?我尝试了显而易见的事实:
[touch.view isKindOfClass:[UIStatusBarForegroundView class]]
但是,程序没有找到UIStatusBarForegroundView对象。解决方案是检查帧,因为状态栏将始终为(0 0; 768 20);和(0 0; 1024 20)为iPad。这不是美丽的解决方案,因为对于iPhone,会有其他框架。
还有其他最佳解决方案吗?
答案 0 :(得分:3)
尝试使用下面的代码获取状态栏类的名称,一旦知道状态栏从此调用返回的内容,就可以在文字字符串比较中使用它。
NSString *svClass = NSStringFromClass([touch.view class]);
一旦您知道状态栏视图返回的内容,您就可以执行此操作:
if ([svClass:compare @"theclassnameyougetbackfromstatusbar"]== NSOrderedSame) {
希望这可以解决程序找不到UIStatusBarForegroundView类的问题
答案 1 :(得分:0)
您可以为视图指定标签号:
tag
An integer that you can use to identify view objects in your application.
@property(nonatomic) NSInteger tag