2012-02-23 128 views
2

我有一个UIView的子类。每当我检测到触摸事件时,我都需要显示一个新的UI-View。UIView子类,触摸事件

我知道,我必须覆盖下面的方法:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 

我的问题是,我不知道如何来显示全屏视图。

我曾尝试以下:

CGRect screenSize = [[UIScreen mainScreen] bounds]; 
UIView *mysubview = [[UIView alloc] initWithFrame : screenSize]; 
[self.window addSubview:mysubview]; 

但我不知道这是否是做正确的方式。

任何人都可以给我建议吗?

回答

0

在这种情况下,我使用mySubView.frame = self.view.frame;

0

不是将视图添加到窗口,而是将其添加为视图截取触摸的子视图?

UIView *mySubview = [[UIView alloc] initWithFrame:self.bounds]; 
[self addSubview:mySubview]; 

澄清后它会出现自定义视图是一种按钮,并希望新的观点在别处全屏视图中的层次结构。对于知道在哪里放置新视图的UIViewController而言,这确实是一项工作。您可以在自定义视图上使用UITapGestureRecognizer,而不是实现您自己的触摸处理代码,将UIViewController用作全屏视图作为目标。在手势识别器操作方法中,您可以创建新视图并将其添加为UIViewController的层次结构的子视图。

+0

因为正在监听触摸事件的视图不是全屏视图,所以它只有100px的高度,并且位于屏幕的底部 – 2012-02-23 10:09:02