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

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

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

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

以上的问题我曾经也遇到过,然后解决了,下面我就分享下我的解决思路。

Step 1 push
Step 2 截屏
Step 3 隐藏tabBar
Step 4 返回
Step 5 viewDidAppear

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

2.截取屏幕
在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;
}

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

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

5.viewDidAppear
以上的都是为了针对第二种返回的解决方案。
在返回到上一层控制器的时候:
第一步, 我们先要移除覆盖在上面ImageView。
第二步, 我们要使我们的自定义tabBar出现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,966评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,267评论 4 61
  • 凶,胡蜂,体硕大,性躁好攻,如狼似虎猛。惹恼,一窝蜂,赶快逃命。胡蜂,铺天盖地盯,一往无前冲,咬定青山不放松。莫侥...
    青梅煮酒见君阅读 249评论 0 0
  • 导读:为什么说包容从感恩开始呢?因为包容会让自己从外而内的改变,相由心生。更让我学会感恩,当自己不再匮乏爱的时候,...
    短视频制作启航阅读 236评论 1 1