关闭

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

标签: ios
917人阅读 评论(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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:922次
    • 积分:19
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档