美文网首页
Tabbar隐藏动画

Tabbar隐藏动画

作者: 海笙樾 | 来源:发表于2018-04-26 11:08 被阅读0次

和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)````

相关文章

网友评论

      本文标题:Tabbar隐藏动画

      本文链接:https://www.haomeiwen.com/subject/vysplftx.html