我有一个UIView
的子类。每当我检测到触摸事件时,我都需要显示一个新的UI视图。
我知道我必须覆盖以下方法:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
我的问题是我不知道如何显示全屏视图。
我尝试了以下内容:
CGRect screenSize = [[UIScreen mainScreen] bounds];
UIView *mysubview = [[UIView alloc] initWithFrame : screenSize];
[self.window addSubview:mysubview];
但我不确定这是否是正确的做法。
有人可以给我建议吗?
答案 0 :(得分:0)
在这种情况下,我使用mySubView.frame = self.view.frame
;
答案 1 :(得分:0)
为什么不将视图添加为视图拦截触摸的子视图,而不是将视图添加到窗口?
UIView *mySubview = [[UIView alloc] initWithFrame:self.bounds];
[self addSubview:mySubview];
在澄清之后,自定义视图似乎是一种按钮,您希望新视图成为层次结构中其他位置的全屏视图。对于知道放置新视图的位置的UIViewController
来说,这确实是一项工作。您可以在自定义视图上使用UITapGestureRecognizer
,而不是实现自己的触摸处理代码,UIViewController
以全屏视图作为目标。在手势识别器操作方法中,您可以创建新视图并将其添加为UIViewController
层次结构的子视图。