繁体   English   中英

GestureRecogniser并在UIScrollView中禁用UIView的拖动手势

[英]GestureRecogniser and disabling drag gesture of a UIView in a UIScrollView

最近我遇到了问题。 如何禁用UIScrollView的特定区域中的滚动,尤其是UIView或子视图占用的区域。 我已经了解了很多关于子类化和其他长方法来解决这个问题。 但最近我在没有子类化的情况下以简单的方式解决了这个问题:

UIPanGestureRecognizer *panrecognizer = [[UIPanGestureRecognizer alloc] init];

接着

[panrecognizer setCancelsTouchesinView:NO];
[mySubViewInScroll addGestureRecognizer:panrecognizer];

我创建了UIPanGestureRecognizer而没有传递给它的Action,然后将识别器添加到滚动条中的视图。 以这种方式,视图上的手势将被捕获,但明确地不由视图或超级视图处理,因为我们传递给对象没有Action。 问题是这个。 这是处理此类问题的正确方法,还是最好不要这样做。 我的意思是Apple会用这种方法接受这种应用吗?

尝试重写ScrollView的

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

返回chi

实际上我认为,即使不是最好的也是最实用的解决方案。因为乱搞类和子类只能实现屏幕的部分滚动锁定似乎很奇怪。 那么让我们看看Apple是否会接受这种解决方案......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM