我有一个使用UISplitViewController构建的iPad项目:
- RootViewController
- DetailviewController
它们两者都通过手势识别器在自己的类内部检测触摸。
我想创建一个透明的UIView,位于所有类的顶部,仅检测对角线滑动(从左下角到右上角)。
因此,当检测到滑动时,我将启动一个功能否则不会添加任何内容,并且触摸应该传递到低级视图。
我尝试了这两个解决方案:
- 在此顶部透明视图上添加GestureRecognizer,但这将隐藏所有对较低层次结构视图的触摸。 (当然启用userInteraction:YES);
另一个解决方案是像这样进行初始化
-(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
但是此时所有的触摸都无法被检测到。
有没有好的解决方案?
- (void)sendEvent:(UIEvent *)event
和-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
。这样我就可以调用/或不调用[super sendEvent:event]
来传递或不传递事件到UIView层次结构中。你们认为这个解决方案怎么样? - Denis Bulgarini