右划html5侧边导航菜单单和 iOS 7 的返回手势冲突,各个 iOS 应用怎么解决

1865人阅读
iOS 功能技巧类(31)
&使用系统的返回按钮当然什么问题都没有,但是如果要自定义返回按钮 ,将会出现系统右滑手势失效的问题。网上解决方法很多。这里只简单提供一种较为简单的方法.
A控制器push到B控制器。
在B控制器里,首先加入如下代码:
&&& self.navigationController.interactivePopGestureRecognizer.delegate = (id)
&&&& self.navigationController.interactivePopGestureRecognizer.enabled = YES;
并如下自定义返回按钮,注意最后使用leftBarButtonItem ,而不是其他网友推荐用的backBarButtonItem
&&& UIButton *leftBtn = [UIButton buttonWithType:UIButtonTypeCustom];//自定义按钮
&&& [leftBtn setBackgroundImage:[UIImage imageNamed:@&HRback_icon_1&] forState:(UIControlStateNormal)];
&&& [leftBtn addTarget:self action:@selector(backLastView) forControlEvents:UIControlEventTouchUpInside];
&&& leftBtn.frame = CGRectMake(0, 0, CountWidth(60), CountWidth(60));
&&& UIBarButtonItem *leftItem =[[UIBarButtonItem alloc]initWithCustomView: leftBtn];
&&& self.navigationItem.leftBarButtonItem = leftI
这样基本解决的自定义返回按钮 并且手势不失效的问题 ,但是存在一个问题。A控制器右滑后 页面出现卡死现象,网友依旧提供了一些不同的解决办法,我自己的办法是:
- (void)viewDidAppear:(BOOL)animated
&&& [super viewDidAppear:animated];
&&& self.navigationController.interactivePopGestureRecognizer.enabled = NO;//一行代码解决问题,注意要写在viewDidAppear方法里
欢迎交流。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:316184次
积分:4907
积分:4907
排名:第6208名
原创:157篇
转载:162篇
译文:24篇
评论:26条
qq交流群:
(4)(14)(23)(12)(41)(4)(7)(25)(6)(6)(9)(16)(16)(17)(4)(6)(3)(24)(12)(9)(24)(8)(10)(9)(3)(31)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决 - CSDN博客
iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
先扯一会儿犊子
见题知意 不再加以解释
我相信针对每一个iOS开发者来说~除了根视图控制器外~所有的界面通过导航栏push过去的界面都是可以通过右滑来返回上一个界面~其实~在很多应用和APP中~用户已经习惯了这个功能~然而~作为开发者的我们~也并没有为此做些什么~因为我们在创建项目时~苹果公司已经为我们都做好了~那么~我们这期就来聊一聊这系统自带的右滑方法以及如何修改和拦截这个不被重视的方法~
什么时候会被拦截
当我们使用代码或者用storyboard来创建一个新的控制器的时候~我们很少注意导航栏的leftItem~因为正常情况下~push到下一个界面的leftItem就是上一个界面的self.title~并且它也就是一个返回的功能~所以~我们很少去在意这些~但当我们有些需求~需要自定义leftItem的时候~那么问题就来了~
问题一:怎么自定义leftItem问题二:为什么系统自带的右滑返回手势失效问题三:怎么解决这个失效问题
1.怎么自定义leftItem
其实~这个东西嘛~说简单也是很简单的~因为~我们很明确的知道~左导航栏就一个功能~那就是返回上一个界面~很显然~是需要用户交互的~必用按钮~
说多了都是废话~直接上代码~
//自定义一个按钮
UIButton *leftBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[leftBtn setTitle:@&返回& forState:UIControlStateNormal];[leftBtn addTarget:self action:@selector(backLastView) forControlEvents:UIControlEventTouchUpInside];leftBtn.frame = CGRectMake(0, 0, 60, 40);[leftBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];//将leftItem设置为自定义按钮UIBarButtonItem
*leftItem =[[UIBarButtonItem alloc]initWithCustomView: leftBtn];self.navigationItem.leftBarButtonItem = leftI
//按钮点击事件 返回上一个界面
- (void)backLastView{ [self.navigationController popViewControllerAnimated:YES];}
需要注意的是~xcode自动从6.0之后~leftItem距左屏幕边距有16个像素点~这样会导致在视觉上会感觉有点偏右~不算美观~然而对于大多数处女座的程序员来说~这明显是不能让人去接受的~解决办法有很多~在这里提供一个最为方便的方法~设置一下按钮的contentEdgeInsets(文字)imageEdgeInsets(图片)属性即可~如:leftButton.contentEdgeInsets = UIEdgeInsetsMake(0, -16, 0, 0);
2.为什么系统自带的右滑返回手势失效
这也是我一直所关系的问题~还希望知道的可以私信我~
笨笨编程官方微博
3.怎么解决这个失效问题
其实很简单很简单~只需要添加下面这一句代码即可
self.navigationController.interactivePopGestureRecognizer.delegate
其实到这里~问题应该都解决了~但是~毕竟右滑返回手势只能靠近屏幕左边缘才能使用~我们如何通过调用系统方法来实现在整个屏幕右滑就可以实现返回功能呢~
setp1:需要获取系统自带滑动手势的target对象
id target = self.navigationController.interactivePopGestureRecognizer.
setp2:创建全屏滑动手势~调用系统自带滑动手势的target的action方法
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]
initWithTarget:target action:@selector(handleNavigationTransition:)];
step3:设置手势代理~拦截手势触发
pan.delegate =
step4:别忘了~给导航控制器的view添加全屏滑动手势
[self.view addGestureRecognizer:pan];
step5:将系统自带的滑动手势禁用
self.navigationController.interactivePopGestureRecognizer.enabled
steo6:还记得刚刚设置的代理吗?下面方法什么时候调用?在每次触发手势之前都会询问下代理,是否触发。
这个方法就是拦截手势触发的方法.
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer
*)gestureRecognizer{}
return NO;则不需要触发滑动手势
return YES;则需要触发滑动手势
代码示例:
- (void)viewDidAppear:(BOOL)animated&
[super viewDidAppear:animated];
// 禁用 iOS7 返回手势
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)])&
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
- (void)viewWillDisappear:(BOOL)animated&
[super viewWillDisappear:animated];
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)])&
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
原文链接:/p/78fc64d387ec
本文已收录于以下专栏:
相关文章推荐
心血来潮 整理了一下关于UINavigationController的一些总结首先来说一些细节问题:
1. 系统默认的返回按钮例如如果是从首页跳转则
如果跳转的页面title过长则为
如果我们想...
什么时候会被拦截
当我们使用代码或者用storyboard来创建一个新的控制器的时候~我们很少注意导航栏的leftItem~因为正常情况下~push到下一个界面的leftItem就是上一个界面的sel...
使用系统的返回按钮当然什么问题都没有,但是如果要自定义返回按钮 ,将会出现系统右滑手机失效的问题。网上解决方法很多。这里只简单提供一种较为简单的方法.
A控制器push到B控制器。
在B控制器里,...
在自定义返回按钮的时候,侧滑手势返回往往默认失效了,怎么让侧滑有效呢
    UIButton  *btn =[UIButton buttonWithType:UIButtonTypeCustom]...
从iOS7开始,系统为UINavigationController提供了一个interactivePopGestureRecognizer用于右滑返回(pop),但是,如果自定了back button...
苹果一直都在人机交互中尽力做到极致,在iOS7中,新增加了一个小小的功能,也就是这个api:self.navigationController.interactivePopGestureRecogni...
iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
字数;阅读;评论14 喜欢11
先扯一会儿犊子
见题知意 不再加以解释
完全自定义导航栏,在实际开发中,并不能满足特殊需求,因此更多情况下,还是需要配合系统导航栏自定义,从而达到我们想要的效果。当我们自定义返回按钮之后,就会出现系统的右滑Pop功能就失效了,这是其中的一个...
在开发当中,我们不得不要将导航栏的左边返回按钮自定义成不同的样式,但是一当我们自定义样式后,系统默认的 pop 手势就失效了,那么我们该如何做呢?其实这个问题网上也有很多答案,但是每一个答案都非常坑,...
在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem
更改导航栏的背景和文字...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)iOS 7 滑动返回那些事儿
.entry-meta
.entry-header
在智能机越来越普及,屏幕越做越大的当下,滑动返回手势已经成为了一个应用的标配功能,甚至可以说,不能滑动返回是一种反人类的交互体验。
滑动返回现在大致有以下3种类型:
1 使用 UISwipeGestureRecognizer 实现,效果为用户在屏幕中向右轻扫手指,页面返回。
2 使用 UIPanGestureRecognizer 实现,效果为用户在屏幕中向右滑动手指,松开后页面返回。
3 使用 iOS 7 提供的滑动返回实现,效果为用户手指从屏幕外由左向右进入屏幕,松开后页面返回。
前两种实现方式是 iOS 7 推出之前的普遍做法,现在来看,已经过时且体验不佳,个人推荐使用第三种,优点如下:
& 良好的交互与动画效果
& 系统级的支持,实现简单,代码清晰
& 不会与一些屏幕内的手势产生冲突
虽然优点很明显,但是在使用过程中,还是会有一些值得我们注意的问题,接下来我们就一一解决它们。
1. 如何设置自定义的返回按钮图片?
如果我们的返回按钮不需要显示文字,或者显示的文字是固定的,可以做到图片中去,那么我推荐通过设置 iOS 7 新引入的 backIndicatorImage 来自定义返回按钮。代码如下:
Crayon Syntax Highlighter v2.6.4
UIImage *image = [UIImage imageNamed:@"nav_back_btn"];
[UINavigationBar appearance].backIndicatorImage =
[UINavigationBar appearance].backIndicatorTransitionMaskImage =
UIImage *image = [UIImage imageNamed:@"nav_back_btn"];
[UINavigationBar appearance].backIndicatorImage =
[UINavigationBar appearance].backIndicatorTransitionMaskImage =
[Format Time: 0.0036 seconds]
这样设置后会发现图片被渲染成 navigationBar 的 tintColor 的颜色了,要怎样才能显示出原始的图片颜色呢?还需要用到 iOS 7 中 UIImage 的一个新属性 renderingMode。 我们需要生成一张 renderingMode 为 UIImageRenderingModeAlwaysOriginal 的图片,让我们加上这行代码:
Crayon Syntax Highlighter v2.6.4
UIImage *image = [UIImage imageNamed:@"nav_back_btn"];
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[UINavigationBar appearance].backIndicatorImage =
[UINavigationBar appearance].backIndicatorTransitionMaskImage =
UIImage *image = [UIImage imageNamed:@"nav_back_btn"];
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[UINavigationBar appearance].backIndicatorImage =
[UINavigationBar appearance].backIndicatorTransitionMaskImage =
[Format Time: 0.0018 seconds]
这样我们的图片就能显示出原始的颜色了。
2. 使用 UIButton 自定义返回按钮后,如何使用系统的滑动返回?
当我们的返回按钮上需要显示不同的文字时,就不能使用 backIndicatorImage 了,我们要自定义一个 UIButton 来生成 UIBarButtonItem,再设置 navigationBar 的 leftBarButtonItem。而如果设置了 leftBarButtonItem 的话,会使系统的滑动返回失效。我们需要在 UIViewController 中加入这行代码
Crayon Syntax Highlighter v2.6.4
self.navigationController.interactivePopGestureRecognizer.delegate =
self.navigationController.interactivePopGestureRecognizer.delegate =
[Format Time: 0.0007 seconds]
运行起来一看,恩&可以滑动返回了。
3. 怎样让滑动返回像默认的效果一样容易触发?
玩了一会儿你发现,好像哪里不对劲,怎么不如之前容易触发了?
没错,当设置了 navigationController.interactivePopGestureRecognizer.delegate 后,虽然滑动返回恢复了,但是它却有点&残疾&,具体表现为两点:
1 手指滑动的角度必须要几乎水平,而正常的效果可以接受差不多30度的偏差,这在实际使用过程中的体验差别是非常巨大的。
2 如果 UIViewController 中是一个 UITableView 或者其他可滚动的 UIScrollView,那么在 UIScrollView 滚动的时候,是不能触发滑动返回的,而正常的效果是可以触发的。
那么,我们该怎样解决这两个问题呢?
我们差不多能猜到是因为手势冲突导致的,那我们就先让 ViewController 同时接受多个手势吧。加上代码:
Crayon Syntax Highlighter v2.6.4
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
& & return YES;
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
&&&&return YES;
[Format Time: 0.0013 seconds]
运行试一试,两个问题同时解决,不过又发现了新问题,手指在滑动的时候,被 pop 的 ViewController 中的 UIScrollView 会跟着一起滚动,这个效果看起来就很怪(知乎日报现在就是这样的效果),而且也不是原始的滑动返回应有的效果,那么就让我们继续用代码来解决吧。
Crayon Syntax Highlighter v2.6.4
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
& & return [gestureRecognizer isKindOfClass:UIScreenEdgePanGestureRecognizer.class];
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
&&&&return [gestureRecognizer isKindOfClass:UIScreenEdgePanGestureRecognizer.class];
[Format Time: 0.0014 seconds]
加上这段代码后,系统的 UIScreenEdgePanGestureRecognizer 就不会与其他的手势同时触发,从而解决了这个看起来有点奇怪的效果。
4. 其他若干小问题
让我们继续玩儿啊玩儿,还会遇到哪些问题呢?
1 当在 UINavigationController 的 rootViewController 中做一个会触发滑动返回的操作后,再点击某个会 pushViewController 的按钮时, UINavigationController 没有任何反应,而如果使用 home键 返回主屏,再进入应用的话,会发现已经 push 进刚才应该进入的 ViewController 了,这是因为在 UINavigationController 的 rootViewController 中触发了滑动返回导致的,我们只要判断一下当前 ViewController 是否是 rootViewController,然后在 - gestureRecognizerShouldBegin: 中返回就可以了。
2 如果我们在 pushViewController 的动画过程中触发滑动返回,会导致闪退,处理方式也很简单,在 push 之后禁用 interactivePopGestureRecognizer, 在 ViewController 显示之后恢复 interactivePopGestureRecognizer 就可以了。我使用了 swizzling 方式在 Category 中统一处理。
我将一份 Demo 放到了 Github 上,欢迎大家下载。
阅读(...) 评论()项目中遇到一个页面中是以一个scrollview横向Tab展示两个不同功能的显示,譬如消息和公告功能,但是由于滑动返回手势和scrollview的滑动返回手势冲突了,导致页面不再能够滑动返回。类似的还有图片浏览功能也出现过。
iOS系统中,滑动返回手势,其实是一个UIPanGestureRecognizer,系统默认的操作是只有滑动屏幕的左边的某个位置,UIPanGestureRecognizer才会起作用。UIScrollView的滑动手势也是UIPanGestureRecognizer。那在侧边滑动时,让UIScrollView的不响应事件就OK了嘛,首先想到了继承UIScrollView 重写下面的方法,让滑动侧边时scrollView不响应事件,根据响应者链,事件最终会传递给下方的滑动手势。
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
if (point.x & location.x) {
但是,这样有个问题,就是在一个页面不同tab时,也需要滑动切换,滑动返回。
由于scrollView的滑动手势拦截了事件,那我重写scrollView中panGestureRecognizer的代理方法,让它不拦截就好了嘛。于是继承UIScrollView,重写下面的方法。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if ([self panBack:gestureRecognizer]) {
return YES;
return NO;
- (BOOL)panBack:(UIGestureRecognizer *)gestureRecognizer {
if (gestureRecognizer == self.panGestureRecognizer) {
UIPanGestureRecognizer *pan = (UIPanGestureRecognizer *)gestureR
CGPoint point = [pan translationInView:self];
UIGestureRecognizerState state = gestureRecognizer.
if (UIGestureRecognizerStateBegan == state || UIGestureRecognizerStatePossible == state) {
CGPoint location = [gestureRecognizer locationInView:self];
if (point.x & 0 && location.x & “这个自己设定" && self.contentOffset.x &= 0) {
return YES;
return NO;
需要侧边滑动时 panBack 返回YES,这时候,我让scrollView的手势和页面的滑动返回手势共存,scrollView不拦截手势,那不就可以滑动返回了吗。好了,测试一下,可以滑动返回,但是滑动返回时,为什么scrollView也跟着在滑动呢,太影响美观了,看来还需要另外的办法,我又回到了第一种办法时的想法,让scrollView切换的时候相应panGesture,滑动返回的时候不响应,那重写scrollView中的另外一个panGestureRecognizer的代理方法。
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
if ([self panBack:gestureRecognizer]) {
return NO;
return YES;
第二种方法:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
以上的代码都是在一个自定义的UIScrollView上的,重写上面的方法即可。然后让横向滚动的scrollView继承这个自定义UIScrollView就OK了。
原理:scrollView的pan手势会让系统的pan手势失效,所以我们只需要在系统手势失效且scrollView的位置在初始位置的时候让两个手势同时启用就可以了
阅读(...) 评论()查看: 3622|回复: 0
IOS仿今日头条滑动导航栏
之前在之家平台给大家分享了网易首页导航封装类、网易首页导航封装类优化,今天在前两个的基础上仿下今日头条。
1.网易首页导航封装类中主要解决了上面导航的ScrollView和下面的页面的ScrollView联动的问题,以及上面导航栏的便宜量。
2.网易首页导航封装类优化中主要解决iOS7以上滑动返回功能中UIScreenEdgePanGestureRecognizer与ScrollView的滑动的手势冲突问题。
今天仿今日头条滑动导航和网易首页导航封装类优化相似,这个也是解决手势冲突,UIPanGestureRecognizer与ScrollView的手势冲突。
一、ViewController的层次
用上面的图来介绍,左侧的个人页面ViewController上面通过addChildViewController添加了一个以MainViewController为RootViewController的
UINavigationController,通过addSubview将UINavigationController的View添加到个人页面ViewController的View上。
二、仿今日头条滑动导航主要有3个问题:
1.UIPanGestureRecognizer与ScrollView的手势冲突
为了达到拖动滑动的效果,需要给MainViewController添加一个UIPanGestureRecognizer,由于底部是ScrollView和TableView组成的,所以会使UIPanGestureRecognizer与底部的冲突,和网易首页导航封装类优化类似需要在
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer中根据gestureRecognizer返回YES来使ScrolView和UIPanGestureRecognizer都识别。
2.UIPanGestureRecognizer滑动结束的位置不正确
用UIPanGestureRecognizer滑动根据便宜量来改变UINavigationController的View的位置,在今日头条中滑动结束时UINavigationController的View要么在原位要么在右侧,不会停在中间,这个问题让我想起了之前做的果冻效果,手势有状态state,根据手势的状态来改变UINavigationController的View的位置,特别是在手势结束时。
3.由于1使ScrolView和UIPanGestureRecognizer都识别,导致返回时ScrolView也会滑动
让底部的ScrolView能滑动的时间应该是UINavigationController的View在初始位置frame的x为0,所以在它的frame的x>0时,底部的bottomScrollView的scrollEnabled=NO。
三、 主要实现代码(导航的代码就不贴了,只贴主要的)
1.声明一个拖动手势
@property(nonatomic,strong) UIPanGestureRecognizer *panGestureR
2.为MainViewController添加手势
_panGestureRecognizer=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panGesture:)];_panGestureRecognizer.delegate=[self.navigationController.view addGestureRecognizer:_panGestureRecognizer]; 复制代码
3.手势识别的方法
//平移-(void)panGesture:(UIPanGestureRecognizer*)pan{//在View中的位置// CGPoint point=[pan locationInView:self.navigationController.view];//在View中的移动量 以手指按下的为原点CGPoint point1=[pan translationInView:self.navigationController.view];if (pan.state==UIGestureRecognizerStateChanged&&pan==_panGestureRecognizer) {if (point1.x&0&&self.navigationController.view.frame.origin.x&self.navigationController.view.frame.size.width-100) {float x= self.navigationController.view.frame.origin.x+point1.x&self.navigationController.view.frame.size.width-100?self.navigationController.view.frame.size.width-100:self.navigationController.view.frame.origin.x+point1.x;self.navigationController.view.frame=CGRectMake(x, self.navigationController.view.frame.origin.y, self.navigationController.view.frame.size.width, self.navigationController.view.frame.size.height);NSLog(@&%@&,NSStringFromCGRect(self.navigationController.view.frame));}else if(point1.x&0){NSLog(@&aaa %f&,self.navigationController.view.frame.origin.x);float x=self.navigationController.view.frame.origin.x+point1.x&0?0:self.navigationController.view.frame.origin.x+point1.x;self.navigationController.view.frame=CGRectMake(x, self.navigationController.view.frame.origin.y, self.navigationController.view.frame.size.width, self.navigationController.view.frame.size.height);}}else if(pan.state==UIGestureRecognizerStateEnded){if (self.navigationController.view.frame.origin.x&self.navigationController.view.frame.size.width/3) {[UIView animateWithDuration:0.2 animations:^{self.navigationController.view.frame=CGRectMake(self.navigationController.view.frame.size.width-100, 0, self.navigationController.view.frame.size.width, self.navigationController.view.frame.size.height);} completion:^(BOOL finished) {self.bottomScrollView.scrollEnabled=YES;}];}else{[UIView animateWithDuration:0.2 animations:^{self.navigationController.view.frame=CGRectMake(0, 0, self.navigationController.view.frame.size.width, self.navigationController.view.frame.size.height);} completion:^(BOOL finished) {self.bottomScrollView.scrollEnabled=YES;}];}}//偏移量是增加的应该设为0[pan setTranslation:CGPointZero inView:self.navigationController.view];}复制代码
4.手势冲突解决
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{if (self.bottomScrollView.contentOffset.x&=0.0&&gestureRecognizer==_panGestureRecognizer) {if (self.navigationController.view.frame.origin.x&0) {self.bottomScrollView.scrollEnabled=NO;}else{self.bottomScrollView.scrollEnabled=YES;}return YES;}return NO;}复制代码
四、效果图
以上所述是小编给大家分享的IOS仿今日头条滑动导航栏,希望对大家有所帮助。
上一篇:下一篇:

我要回帖

更多关于 ios 策划返回 的文章

 

随机推荐