scr*_*rrr 7 objective-c ios ios7
我有一个导航控制器,推动包含UIPageViewController(PAGES)的视图控制器(PARENT).现在我使用平移/滑动手势在页面视图控制器的子节点之间切换.但是,我无法再使用屏幕左边框的滑动手势弹出PARENT -view控制器,因为它被解释为PAGES中的手势.
当显示最左侧的视图控制器时,是否可以完成滑动到弹出?
两个想法:
返回nil in pageViewController:viewControllerBeforeViewController- >不起作用.
如此处所述,限制触摸区域.
还是有更简单的方法?
anc*_*jic 16
我和@smallwisdom的情况相同,但处理方式不同.
我有一个视图控制器A,我推动我的导航控制器的堆栈.此视图控制器A包含一个水平滚动视图,从屏幕左侧一直延伸到右侧.
在这种情况下,当我想A从导航控制器的堆栈中刷屏幕弹出视图控制器时,我最终做的就是滚动这个水平滚动视图.
解决方案非常简单.
在我的视图控制器中A,我有这样的代码:
_contentScrollView = [[UIScrollView alloc] init];
[self.view addSubview:_contentScrollView];
for (UIGestureRecognizer *gestureRecognizer in _contentScrollView.gestureRecognizers) {
[gestureRecognizer requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer];
}
Run Code Online (Sandbox Code Playgroud)
它很棒.这是做什么的?它告诉scrollView的手势识别器,他们必须等待,看看其他手势识别器是否会识别当前手势.
如果其他人无法识别,那么他们将不再需要等待,他们可以尝试识别当前的手势.
如果该其他识别器成功并识别当前手势,则所有等待的手势识别器将自动失败.
这等手势识别他们不得不等待被设置为导航控制器的interactivePopGestureRecognizer.他负责滑动到后退的姿势.
我大多同意@ ancajic的回答.当你将UIPageViewController的transitionStyle设置为'Scroll'时,我想提供一个额外的案例,你不会在其中设置gestureRecognizers,解决方法是:
if (self.navigationController?.interactivePopGestureRecognizer != nil)
{
for view in self.pageViewController!.view.subviews
{
if let scrollView = view as? UIScrollView
{
scrollView.panGestureRecognizer.requireGestureRecognizerToFail(self.navigationController!.interactivePopGestureRecognizer!);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5711 次 |
| 最近记录: |