ios – 使用外部起点消防UIPanGestureRecognizer

ios – 使用外部起点消防UIPanGestureRecognizer,第1张

概述我有一个如下图所示的布局: 黑色区域是一个摄像头,红色区域只是一个带有UIPanGestureRecognizer的UIView,绿色区域是带有图像的UICollectionView. 现在,如果用户按下红色区域并开始拖动,则所有布局都移动到顶部,并且当相机溢出设备屏幕时,用户能够立即在集合视图中看到更多项目.所有逻辑都已完成. 我的问题是,即使用户开始在红色区域外拖动,我想要相同的功能,即用户开 我有一个如下图所示的布局:

黑色区域是一个摄像头,红色区域只是一个带有UIPanGestureRecognizer的UIVIEw,绿色区域是带有图像的UICollectionVIEw.

现在,如果用户按下红色区域并开始拖动,则所有布局都移动到顶部,并且当相机溢出设备屏幕时,用户能够立即在集合视图中看到更多项目.所有逻辑都已完成.

我的问题是,即使用户开始在红色区域外拖动,我想要相同的功能,即用户开始从设备底部拖动集合视图,以便显示更多项目,但是如果用户到达(交叉,移动)在红色区域,然后PanGestureRecognizer应该被解雇.从磁盘中选择图像时,Instagram具有此功能.有没有办法实现这一点,我失踪了?我尝试使用pointInsIDe,touchesBegan和touchesMoved覆盖红色视图,但如果拖动来自集合视图,则会调用其中任何一个. SwipeGesture也不起作用.谢谢!

解决方法 您可以尝试以下方法:

1)将要激活的PanGesture(红色)添加到集合视图中:

[self.collectionVIEw addGestureRecognizer:redPanGesture];

2)在激活PanGesture时调用的方法中,对其进行过滤,以便仅当手指位于红色区域的顶部时才执行逻辑:

CGPoint location = [recognizer locationInVIEw:self.redVIEw];if(location.y > self.redVIEw.frame.size.height){    [(UIPanGestureRecognizer *)recognizer setTranslation:CGPointZero inVIEw:self.vIEw];    return;}

3)将您的班级设置为PanGesture的代表:

redPanGesture.delegate = self;

4)实现下面的方法,否则集合视图不会滚动:

- (BOol)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizershouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{    return YES;}
总结

以上是内存溢出为你收集整理的ios – 使用外部起点消防UIPanGestureRecognizer全部内容,希望文章能够帮你解决ios – 使用外部起点消防UIPanGestureRecognizer所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1046571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存