ios,如何在 Collection 视图中执行 (interactivePopGestureRecognizer) 后退操作

Posted

技术标签:

【中文标题】ios,如何在 Collection 视图中执行 (interactivePopGestureRecognizer) 后退操作【英文标题】:ios,How to preform (interactivePopGestureRecognizer )back action in Collection view 【发布时间】:2014-06-07 06:18:07 【问题描述】:

ListViewController-> DetailsViewController,DetailsViewController的navigationController支持interactivePopGestureRecognizer特性,可以右滑回到ListViewContorller,没问题,

只是DetailsViewController包含一些UICollectionView,它不响应滑动手势,这意味着如果用户触摸CollectionView滑动,从左向右拖动视图,navigationController根本没有动作,如何解决这个问题?

我只是这样尝试:

[collectionView addGestureRecognizer:  self.navigationController.interactivePopGestureRecognizer];

但它不起作用。

然后我创建新的“滑动手势识别器”并绑定到 collectionView,还链接到选择器操作,如下所示:

我在详情视图中添加代码:

-(IBAction)swipeBack:(id)sender

    [self.navigationController popToRootViewControllerAnimated:true];


然后,如果用户触摸collectionView,那么它可以返回到列表视图控制器,但这还不够好,因为它与'interactivePopGestureRecognizer'的工作方式不同,

有人知道为此目的的其他最佳解决方案吗?感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

就像https://***.com/a/18947952/1113407 中提到的那样,如果

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
    return YES;

已设置。

如果这还不够,请尝试采用https://***.com/a/2628777/1113407 来满足您的需求。

在UINavigationContoller swipe back function not working if its view is added to UIViewContoller“Mr.1”中提到:

更新:原来如果隐藏导航栏,滑动功能将被禁用....

你隐藏导航栏了吗?

【讨论】:

嗨...细节视图控制器支持向后滑动操作,只是因为一些UICollectionView位于视图上,然后如果手指在集合视图上滑动,没有任何反应,这是我的问题,我执行上述解决方案:1)创建新的“滑动手势识别器”并绑定到collectionView,还链接到选择器“swipeBack”,然后如果用户滑动搭配视图,视图控制器可以做回来,但这还不够好...... .

以上是关于ios,如何在 Collection 视图中执行 (interactivePopGestureRecognizer) 后退操作的主要内容,如果未能解决你的问题,请参考以下文章

《iOS Human Interface Guidelines》——Collection View

iOS开发之collection view 的视图裁剪问题

IOS Collection 视图单元格第一次单击并在视图出现时删除选择

iOS 6 Collection 视图格式问题

iOS Collection 视图单元格更新延迟

如何在 Collection 视图中为每个单元格添加 edgeInsets -Swift