您好UIView
就像这样UIScrollView
。 UIView
是一个本身透明的容器,但有许多子视图不是。
-------------------------
- UIScrollView -
- -
- ------------- -
- - UIView - -
- ------------- -
-------------------------
UIView
是透明的,但它会阻止UIScrollView
在触摸时滚动。一些子视图是按钮,因此它们具有覆盖滚动动作的轻击手势,但UIView
框架中的透明间隙仍然阻止滚动手势。有没有办法防止这种情况发生?我仍然想用它作为容器来保存我的其他子视图。
答案 0 :(得分:2)
您不应将userInteractionEnabled设置为否,因此您希望它难以处理。我认为正确的方法是将UIView子类化并覆盖- pointInside: withEvent:
,如下所示。
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
CGPoint localPoint = [self convertPoint:point fromView:self];
for (UIView *subview in self.subviews) {
if ([subview pointInside:localPoint withEvent:event]) {
return YES;
}
}
return NO;
}
使用此视图,您可以与视图内的子视图进行交互,如果不触及子视图,则滚动滚动视图。
答案 1 :(得分:1)
谢谢你的回答。但我发现这个解决方案适合我:
How to get touches when parent view has userInteractionEnabled set to NO in iOS
答案 2 :(得分:0)
在滚动视图内的视图上将userInteractionEnabled
设置为FALSE
。
myView.userInteractionEnabled = FALSE;