关闭

iOS自定义tabBar手势侧滑返回(仿系统)

标签: ios
1128人阅读 评论(0) 收藏 举报
分类:

iOS自定义tabBar手势侧滑返回(仿系统)

当我们自己创建了一个自定义的tabBar,通过push跳转页面的时候,会发现tabBar没有像我们所希望的那样隐藏起来。

然后,我们通过hide来隐藏我们的tabBar,又会遇到第二个问题,tabBar的出现和消失会很突兀,并不是我们所想要的。

有的人提出用,hidesBottomBarWhenPushed来控制,第三个问题来了,我们自定义的tabBar跟系统的tabBar没有关系啊。

以上的问题我曾经也遇到过,然后解决了,下面我就分享下我的解决思路。
  • Step 1 push
  • Step 2 截屏
  • Step 3 隐藏tabBar
  • Step 4 返回
  • Step 5 viewDidAppear

push

  • 一个很常见的Nav push,直接push过去就可以了

截取屏幕

  • 在push过之前,我们需要截取一张图片,也就是push过去之前,控制器的状态。
  • 我们将这个图片覆盖在前一个控制上,这样的话,当你pop返回的时候,也会看到这张图片。

/**
 *  截取屏幕的方法
 */
- (void)cutScreem{

UIGraphicsBeginImageContextWithOptions(self.tabBarController.view.bounds.size, YES, 0.0);

    //截取层的画面

    [self.tabBarController.view.layer renderInContext:UIGraphicsGetCurrentContext()];

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    //将图片给铺满整个视图

    self.backImageView.image = image;
}

隐藏tabBar

  • 在下一个控制器中,viewDidLoad隐藏自定义控制器。

返回

  • 在iOS 7.0 之后,Nav返回有两种:
  • 第一种是点击返回按钮,第二种是屏幕侧滑返回

viewDidAppear

    以上的都是为了针对第二种返回的解决方案。

    在返回到上一层控制器的时候:

    第一步, 我们先要移除覆盖在上面ImageView。
    第二步, 我们要使我们的自定义tabBar出现。

这样就完成了全部所要的效果,附上代码 https://github.com/Szenncy/CustomTabBar

如有转载,请声明来源

0
0
查看评论

ios学习笔记----实现一个带滑动手势的tabBarViewController,并可自定义tabBar

我又来啦····最近在准备实习,渣渣的工作路程就要开始啦啦啦啦···· 闲话少说,进入正题吧~····之前在做项目的时候很多时候用到tabBarViewController这个东西...
  • KeKeQiaoKeLi
  • KeKeQiaoKeLi
  • 2014-03-04 21:39
  • 3087

iOS学习笔记12--纯代码实现原生UITabBarController,手势滑动切换视图

纯代码实现原生UITabBarController,添加滑动手势实现子视图的切换。
  • u013166985
  • u013166985
  • 2016-04-01 15:35
  • 1186

ios开发自定义带滑动手势tabBarViewController,并可自定义tabBar

  • 2014-03-04 21:31
  • 81KB
  • 下载

iOS 导航栏的隐藏以及右滑返回的问题

隐藏导航
  • peng_up
  • peng_up
  • 2016-02-15 16:10
  • 1977

【Android】毫无耦合性,一个Item根布局搞定 item侧滑删除菜单,像IOS那样简单的使用侧滑删除。

【Android自定义ViewGroup】不一样的轮子,巧用类变量解决冲突,像IOS那样简单的使用侧滑删除,一个控件搞定Android item侧滑删除菜单。 包含且不仅包含以下功能: 1 侧滑拉出菜单。 2 点击除了这个item的其他位置,菜单关闭。 3 侧滑过程中,不许父控件上下滑动。 4 多指...
  • zxt0601
  • zxt0601
  • 2016-08-24 22:06
  • 13432

iOS侧滑返回功能实现

方案一 :开启使用系统自带的侧滑返回 iOS7之后系统提供了侧滑手势(interactivePopGestureRecognizer),即从屏幕左侧边缘滑起会pop回导航控制器栈的上个viewController。不过如果你自定义了UINavigationViewController或者自定义了返回...
  • zhaojinqiang12
  • zhaojinqiang12
  • 2016-05-25 21:24
  • 2278

iOS侧滑返回事件问题和解决方案

之前自己在做项目的过程中遇到过这种情况,如果在项目中自己定制了导航栏的左按钮返回事件,这样的话就无法触发系统的侧滑返回事件,在一定程度上影响了APP使用的舒适度。为了解决这个问题,我在网上也找过很多解决办法,但是在解决了可以侧滑返回问题的同时,新的问题又产生了,在这种循环中不断的查找,最终自己摸索出...
  • pyy910716
  • pyy910716
  • 2015-08-19 10:31
  • 916

开启使用系统自带的侧滑返回

方案一 :开启使用系统自带的侧滑返回 iOS7之后系统提供了侧滑手势(interactivePopGestureRecognizer),即从屏幕左侧边缘滑起会pop回导航控制器栈的上个viewController。不过如果你自定义了UINavigationViewController或者自定义了返回...
  • sheng_bin
  • sheng_bin
  • 2017-02-07 15:27
  • 980

ios自定义返回按钮后没有滑动返回手势处理方法

A push B push C在C中不需要加以下代码 在A视图中增加下面代码 -(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; self.navigationController.interac...
  • cjh16102377
  • cjh16102377
  • 2016-03-21 11:02
  • 762

iOS 模仿QQ侧滑菜单和UITabBar拖动动画

最近照着QQ做了一下,实现了一下侧滑菜单、自定义UITabBar、拖动TabBar的动画、设置各个页面是否支持旋转、是否隐藏状态栏、状态栏风格,使用swift实现,先看一下效果: 具体实现思路是:window的rootViewController,添加了两个childViewController:...
  • concentrate_
  • concentrate_
  • 2017-06-30 17:06
  • 1231
    个人资料
    • 访问:1131次
    • 积分:21
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档