我有一个用UISplitViewController构建的iPad项目:
他们都在自己的班级中使用Gesture Recognizer检测触摸。
我想在所有类之上创建一个透明的 UIView,以便仅检测对角线滑动(从左下角到右上角)。
因此,当检测到滑动时,我将启动一个函数否则不附加任何内容,并且应该在低级别视图上传递触摸。
我试过这两个解决方案:
另一个解决方案就是像这样生成init
-(id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self setBackgroundColor:[UIColor colorWithWhite:1 alpha:0.01]];
[self setUserInteractionEnabled:NO];
}
return self;
}
并尝试使用
检测滑动 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
但此时未检测到所有触摸。
有人有一个很好的解决方案吗?
答案 0 :(得分:2)
我不会像你提到的那样创建一个透明的UIView。我将UISwipeGestureRecognizer
添加到UISplitViewController
的视图中,这已经是包含所有子视图的视图。您可以访问app
代理中的视图:
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
// attach the swipe gesture to the view that embeds the rootView and the detailView
UISwipeGestureRecognizer* swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:splitViewController.view action:@selector(swipeUpdated:)];
答案 1 :(得分:1)
您是否只能在UISplitViewController
的视图中添加手势识别器?
答案 2 :(得分:0)
您应该查看Container Controllers
。您可以创建自己的SplitViewController
,并在检测到滑动的控制器顶部创建第三个视图。自定义容器控制器非常简单,为您提供了很大的灵活性。