UIView子类,触摸事件

时间:2012-02-23 09:58:41

标签: ios cocoa-touch uiview

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

我知道我必须覆盖以下方法:

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

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

我尝试了以下内容:

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

但我不确定这是否是正确的做法。

有人可以给我建议吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

为什么不将视图添加为视图拦截触摸的子视图,而不是将视图添加到窗口?

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

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