[ios_自定义tarbar和侧边栏]

Welcome to my blog. Thanks.

Dome: github 地址

pod RESideMenu

  1. vim podfile

    platform :ios,'8.0'
    target 'SideAndTarbar' do
    pod 'RESideMenu', '~> 4.0.7'
    

AppDelegate.m

添加RESideMenuDelegate
  1. didFinishLaunchingWithOptions

    self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen ]bounds]];
    TableViewController * viewController =  [[TableViewController alloc]init];
    TarBarViewController * barViewController = [[TarBarViewController alloc]init];
    RESideMenu * sideMenu = [[RESideMenu alloc]initWithContentViewController:barViewController leftMenuViewController:viewController rightMenuViewController:nil];
    sideMenu.delegate = self;
    sideMenu.contentViewShadowEnabled = YES;
    sideMenu.contentViewInPortraitOffsetCenterX = 100.f;
    sideMenu.contentViewScaleValue = 1.0;
    sideMenu.menuPreferredStatusBarStyle = UIStatusBarStyleLightContent;
    sideMenu.bouncesHorizontally = NO;
    self.window.rootViewController = sideMenu; 
    

自定义tabbar

  1. 添加子控制器属性

    • 添加navgationbar
    • 去除tabbar分割线
    • 选中controller后图片和标题改变
-(void)addChildViewController:(UIViewController *)childController title:(NSString *)title image:(UIImage *)image selecteImage:(UIImage *)selectedImage{

    UINavigationController * controller = [[UINavigationController alloc]initWithRootViewController:childController];
    childController.view.backgroundColor = [UIColor whiteColor];
    childController.navigationItem.title = title;
    [[UITabBar appearance] setShadowImage:[UIImage new]]; [[UITabBar appearance] setBackgroundImage:[[UIImage alloc]init]];
    selectedImage = [selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    self.tabBar.tintColor = [UIColor greenColor];  
    controller.tabBarItem = [[UITabBarItem alloc]initWithTitle:title image:image selectedImage:selectedImage];
    [self addChildViewController:controller];

}  
  1. 添加子控制器
    -(void)setNewBar{
    OneViewController * one = [[OneViewController alloc]init];
    [self addChildViewController:one title:@"MainOne" image:[UIImage imageNamed:@"icon_home_normal"] selecteImage:[UIImage imageNamed:@"icon_home_selected"]];
    TwoViewController * two = [[TwoViewController alloc]init];
    [self addChildViewController:two title:@"MainTwo" image:[UIImage imageNamed:@"icon_door_normal"] selecteImage:[UIImage imageNamed:@"icon_door_selected"]];
    }
    

在各自类中进行操作就OK

  1. 例如:
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"icon_sidebar"] style:UIBarButtonItemStylePlain target:self action:@selector(presentLeftMenuViewController:)];
     UIButton * button = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
     button.backgroundColor = [UIColor greenColor];
     [self.view addSubview:button];