黑色区域是一个摄像头,红色区域只是一个带有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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)