首页 > 代码库 > 动画隐藏UITabBarController与UINavigationController
动画隐藏UITabBarController与UINavigationController
动画隐藏UITabBarController与UINavigationController
效果图:
源码:
AppDelegate.m
//// AppDelegate.m// HideTabbar//// Copyright (c) 2014年 Y.X. All rights reserved.//#import "AppDelegate.h"#import "RootViewController.h"@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. UITabBarController *tab = [[UITabBarController alloc] init]; tab.viewControllers = @[[RootViewController new]]; UITabBar *tabBar = tab.tabBar; UITabBarItem *tabBarItem = [tabBar.items objectAtIndex:0]; tabBarItem.title = @"YouXianMing"; NSDictionary *textDic = @{NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-Thin" size:20.f]}; [tabBarItem setTitlePositionAdjustment:UIOffsetMake(0, -12.f)]; [tabBarItem setTitleTextAttributes:textDic forState:UIControlStateNormal]; UINavigationController *NC = [[UINavigationController alloc] initWithRootViewController:tab]; self.window.rootViewController = NC; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; return YES;}@end
RootViewController.m
//// RootViewController.m// HideTabbar//// Copyright (c) 2014年 Y.X. All rights reserved.//#import "RootViewController.h"@interface RootViewController ()@property (nonatomic, assign) BOOL flag;@end@implementation RootViewController- (void)viewDidLoad{ [super viewDidLoad]; self.view.layer.contents = (__bridge id)([UIImage imageNamed:@"back"].CGImage); // 添加手势 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(event:)]; [self.view addGestureRecognizer:tap];}- (void)event:(UITapGestureRecognizer *)tap{ if (!_flag) { [self hideTabBar:self.tabBarController]; } else { [self showTabBar:self.tabBarController]; } _flag = !_flag;}- (void)hideTabBar:(UITabBarController *)tabbarcontroller{ // 隐藏导航栏 [self.navigationController setNavigationBarHidden:YES animated:YES]; // 隐藏tabbar [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 + 50, 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 + 50)]; } } }];}- (void)showTabBar:(UITabBarController *)tabbarcontroller{ // 显示导航栏 [self.navigationController setNavigationBarHidden:NO animated:YES]; // 显示tabbar [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 - 50, 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 - 50)]; } } }];}@end
核心的地方:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。