ios - 隐藏导航栏时,使用带有水平滚动的 CollectionView 的 interactivepopgesturerecognizer

标签 ios objective-c uiscrollview uicollectionview uiswipegesturerecognizer

我正在尝试使用 interactivepopgesturerecognizer 返回一个 View ,其中我还有一个水平滚动的 UICollectionView,问题是在 Collection View 的框架中,滑动返回不起作用,但是当触摸开始超出 Collection View 的框架时有效,这是我的 View 的一个例子:

| ---> here works
|-----------
|
| ---> This is the collection view and doesn't swipe to go back
|
|-----------
| ---> here works

我该如何解决这个问题?

编辑:我意识到只有在推送 View 中导航栏被隐藏时才会出现此问题,而当隐藏时滑动返回在所有 View 中都不起作用,不仅在 Collection View ,为了让它工作,我需要添加这一行:

[self.navigationController.interactivePopGestureRecognizer setDelegate:nil];

在主视图中,但通过这种方式我无法滑动以返回 Collection View 。 我创建了一个简单的测试来检查问题:

https://www.dropbox.com/s/c7ueyrcmm2x1m5w/TestSwipe.zip?dl=0

最佳答案

将这行代码添加到您的 SecondViewController 中的 viewDidLoad 方法

[self.collectionView.panGestureRecognizer requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer];

这实质上告诉 Collection View 的手势识别器,它需要等待交互式弹出识别器失败才能继续,强制优先处理交互式弹出。

关于ios - 隐藏导航栏时,使用带有水平滚动的 CollectionView 的 interactivepopgesturerecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28076473/

相关文章:

ios - xcodebuild 存档未通过 ITMS 验证

ios - 更新titleLabel UIButton

ios - UITableViewCell 使用自定义 layoutSubviews() 出现在屏幕上后隐藏部分内容

ios - `reloadRowsAtIndexPath` 崩溃

ios - 自定义对象的 UIAppearance 代理

objective-c - 捏 UIScrollView 时发生奇怪的崩溃

ios - UIDatePicker 重新定位到 View 底部

iphone - IOS Dev Library 在你的 mac 上离线

iphone - 将 UIImageView 放在 UIScrollView 中而不使用 contentInset?

ios - 为同一类中的 2 个不同 UIScrollView 设置委托(delegate)