Tabbar隐藏动画

和Tabbar按钮切换动画一样(上一篇)
首先继承UITabBarController创建自己的Controller,
声明方法
+(void)hideTabBarController:(UITabBarController *)tabbarcontroller;
+(void)showTabBarController:(UITabBarController *)tabbarcontroller;
在.m中实现

+ (void)hideTabBar:(UITabBarController *)tabbarcontroller
{
    // 隐藏tabbar
    [UIView animateWithDuration:UINavigationControllerHideShowBarDuration animations:^{
        CGFloat H = 50;
        if (kDevice_Is_iPhoneX) {
            H = 90;
        }
        for(UIView *view in tabbarcontroller.view.subviews)
        {
            if([view isKindOfClass:[UITabBar class]])
            {
                [view setFrame:CGRectMake(view.frame.origin.x,
                                          view.frame.origin.y + H,
                                          view.frame.size.width,
                                          view.frame.size.height)];
            }
            else
            {
                [view setFrame:CGRectMake(view.frame.origin.x,
                                          view.frame.origin.y,
                                          view.frame.size.width,
                                          view.frame.size.height + H)];
            }
        }
    }];
}
+ (void)showTabBar:(UITabBarController *)tabbarcontroller
{
    // 显示tabbar
    CGFloat H = 50;
    if (kDevice_Is_iPhoneX) {
        H = 90;
    }
    [UIView animateWithDuration:UINavigationControllerHideShowBarDuration animations:^{
        for(UIView *view in tabbarcontroller.view.subviews)
        {
            if([view isKindOfClass:[UITabBar class]])
            {
                [view setFrame:CGRectMake(view.frame.origin.x,
                                          view.frame.origin.y - H,
                                          view.frame.size.width,
                                          view.frame.size.height)];
            }
            else
            {
                [view setFrame:CGRectMake(view.frame.origin.x,
                                          view.frame.origin.y,
                                          view.frame.size.width,
                                          view.frame.size.height - H)];
            }
        }
    }];
}

// 判断iPhone X的宏定义

#define kDevice_Is_iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)````
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,717评论 4 61
  • 我们不是孩子, 跌倒了要人扶,要人哄, 自己爬起来拍怕灰尘, 继续走得倔强; 我们不是老人, 生病了需要送药,需要...
    素颜贝贝阅读 1,792评论 0 0
  • 亲爱的战友们,娃娃们上一年级要开始正式写字了,可能有部分孩子在幼儿园已经开始写了,但我有一种担忧,那就是握...
    瑶花琪树Ms赵阅读 4,046评论 0 6
  • 我陷入了深深的自责和内疚中!我没有处理好自己的情绪狠狠的打了王子朔一顿、我受不了了自己那一刻的状态、我只能打他!我...
    lawyer丽阅读 694评论 0 0

友情链接更多精彩内容