TabBarViewController的创建以及渐变隐藏

//  CustomTabBarViewController.h

#import <UIKit/UIKit.h>
@interface CustomTabBarViewController : UITabBarController

+ (void)deallocTabbar;
+ (id)defaultsTabBar;

- (void)selectBUttonWithIndex:(NSInteger)index;
-(void)setTabBarHidden:(BOOL)Bool;
@end
//
//  CustomTabBarViewController.m
#import "CustomTabBarViewController.h"
#import "DJSHomeViewController.h"
#import "DJSStudioViewController.h"
#import "DJSAppointmentViewController.h"
#import "DJSMineViewController.h"
#import "Header.h"
#define btnBaseTag 100

static CustomTabBarViewController *defaults;
@interface CustomTabBarViewController ()
{
    BOOL tabBarIsShow;
}
@property (nonatomic, strong) UIImageView *baceGroundImage;
@property (nonatomic, strong) NSMutableArray *btnArray;

@end

@implementation CustomTabBarViewController
@synthesize baceGroundImage, btnArray;
+ (void)deallocTabbar
{
    defaults = nil;
}
+ (id)defaultsTabBar
{
    if (defaults == nil) {
        defaults = [[CustomTabBarViewController alloc] init];
    }
    return defaults;
}

- (void)viewDidLoad {
    [super viewDidLoad];

    tabBarIsShow = YES;
    self.view.backgroundColor = [UIColor colorWithRed:242/255.0 green:242/255.0 blue:242/255.0 alpha:1];
    self.tabBar.hidden = YES;
    DJSHomeViewController *home = [[DJSHomeViewController alloc]init];
    UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:home];
    DJSStudioViewController *produce = [[DJSStudioViewController alloc]init];
    UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:produce];

    DJSAppointmentViewController *appoint = [[DJSAppointmentViewController alloc]init];
    UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:appoint];

    DJSMineViewController *mine = [[DJSMineViewController alloc]init];
    UINavigationController *nav3 = [[UINavigationController alloc] initWithRootViewController:mine];

    self.viewControllers = @[nav, nav1, nav2, nav3];

    btnArray = [[NSMutableArray alloc] init];
    [self setCustomTabbarItem];
}
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}
- (void)setCustomTabbarItem
{
    [btnArray removeAllObjects];
    baceGroundImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, Main_height-54, Main_Width, 54)];
    baceGroundImage.backgroundColor = [UIColor whiteColor];

    baceGroundImage.image = [UIImage imageNamed:@"[email protected]"];
    baceGroundImage.userInteractionEnabled = YES;
    [self.view addSubview:baceGroundImage];

//    UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, Main_Width, 0.5)];
//    lineView.backgroundColor = [UIColor cyanColor];
//    [baceGroundImage addSubview:lineView];
    NSArray *imageNameArr = @[@"home_unicorn_unpress", @"home_project_unpress", @"home_studio_unpress",@"home_my_unpress"];
    NSArray *selecNameArr = @[@"home_unicorn_press", @"home_project_press", @"home_studio_press",@"home_my_press"];
    CGFloat space = Main_Width/4;
    for (NSInteger i = 0; i < 4; i++) {
        UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(i * space, 0, space, 54)];
//        btn.backgroundColor = [UIColor cyanColor];
        [btn setImage:[UIImage imageNamed:imageNameArr[i]] forState:UIControlStateNormal];
        [btn setImage:[UIImage imageNamed:selecNameArr[i]] forState:UIControlStateSelected];
        btn.tag = btnBaseTag + i;
        if (i == 0)
        {
            btn.selected = YES;
        }
        [btn addTarget:self action:@selector(pressBtn:) forControlEvents:UIControlEventTouchUpInside];
        [baceGroundImage addSubview:btn];
        [btnArray addObject:btn];
    }
}
- (void)selectBUttonWithIndex:(NSInteger)index
{
    UIButton *btn = (UIButton *)btnArray[index];
    [self pressBtn:btn];
}

-(void)setTabBarHidden:(BOOL)Bool
{

    if (Bool) {
        [self hideTabBar];
    }
    else{
        [self showTabBar];
    }
}

- (void)hideTabBar {
    if (!tabBarIsShow)
    { //already hidden
        return;
    }
    [UIView animateWithDuration:0.35 animations:^{
        baceGroundImage.frame = CGRectMake(0, Main_height, Main_Width, 54);
    }];
    tabBarIsShow = NO;
}

- (void)showTabBar {
    if (tabBarIsShow)
    { // already showing
        return;
    }
    [UIView animateWithDuration:0.35 animations:^{
        baceGroundImage.frame = CGRectMake(0, Main_height-54, Main_Width, 54);
    }];

    tabBarIsShow = YES;
}

-(void)pressBtn:(id)sender
{
    UIButton *btn=(UIButton *)sender;

    if (btn.tag - btnBaseTag >= self.viewControllers.count) {
        return;
    }
    self.selectedIndex = btn.tag - btnBaseTag;
    for (UIButton *tempBtn in btnArray)
    {
        if (tempBtn.tag == btn.tag)
        {
            tempBtn.selected=YES;
        }
        else
        {
            tempBtn.selected=NO;
        }
    }
}
@end

1、创建

@interface AppDelegate ()
{
    CustomTabBarViewController *tabbar;
}

tabbar=[CustomTabBarViewController defaultsTabBar];

self.window.rootViewController = tabbar;
2、隐藏

CustomTabBarViewController * tabBar =[CustomTabBarViewController defaultsTabBar];
    [tabBar setTabBarHidden:YES];

时间: 2025-01-12 13:55:02

TabBarViewController的创建以及渐变隐藏的相关文章

HTML5创建线条渐变

1.设计源码 <!doctype html> <html> <head> <meta charset="utf-8"> <title>HTML5创建线条渐变</title> <script type="text/javascript"> /** * 创建线条渐变 */ function drawGradualText() { //找到<canvas>元素 var canv

创建完全的隐藏用户

这里我们使用的环境是windows xp操作系统.其他系统请自行查找相应的位置,原理相同. 首先我们打开测试系统. 然后我们创建一个用户,使用CMD来创建,当然了,如果直接在用户管理中创建也是一样的.这里就不进行演示了,相应的操作请自行查找资料. 这里我们使用的命令是 [net user username password /add] username:你想要添加的用户名 password:你想要设置的密码 net命令下有很多实用的命令,大家可以自行尝试. 这里提示命令成功完成说明已经成功创建了

创建一个渐变遮罩~

很多应用中为了美观和让视图过渡的时候显得尽量平滑,使用了渐变的效果.八国如果美工没时间给作图的话,我们可以自己去实现 使用渐变CAGradientLayer CAGradientLayer *topLayer = [[CAGradientLayer alloc] init]; topLayer.frame = CGRectMake(0, 0, 320, 100); topLayer.colors = @[(id)[UIColor colorWithWhite:1.0 alpha:0.0].CGC

Vuforia图像追踪,动态创建的对象隐藏显示的坑

刚做的一个项目,使用Unity3D的Vuforia插件进行图像识别,其中有动态生成的游戏对象模型,地形模型放在ImageTarget下,作为ImageTarget的子物体. 动态生成的敌人则有Prefab克隆,通过代码控制生成的敌人的父对象为ImageTarget,结果就是无论是否识别到,敌人都会显示,而地形则不会. 怀疑是Vuforia可能只能对场景中ImageTarget下的对象实现显示隐藏,于是将克隆的游戏对象放到场景中为ImageTarget的子对象,Active设为不可用,在克隆时设为

svg和css3创建环形渐变进度条

在负责的项目中,有一个环形渐变读取进度的效果的需求,于是在网上查阅相关资料整理一下.代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://code.jquery.com/jquery-3.1.1.min.js&qu

Ionic2 渐变隐藏导航栏|标题栏

废话少说 直接上代码.... //导入需要用到的命名空间 ViewChild,Content import { Component, ViewChild } from '@angular/core'; import { NavController, ModalController, ToastController, Content } from 'ionic-angular'; @Component({ selector: 'home', templateUrl: 'home.html', })

IOS 创建渐变图层

代码如下 typedef enum { GradientLayerKindLeftRight = 2000, GradientLayerKindUpDown, GradientLayerKindLBRT,//左下-右上 GradientLayerKindLTRB //左上-右下 }GradientLayerKind; //-------------------------------------------------------------- // 创建矩形渐变图层 // // @param

Oracle(创建视图)

概念: 视图:所谓视图就是提取一张或者多张表的数据生成一个映射,管理视图可以同样达到操作原表的效果,方便数据的管理以及安全操作. 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据.视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储查询结果的一个虚拟表.视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束. 视图的存储 与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据.视图只是定义了一个查询,视图中的数

SVG渐变

前面的话 给SVG元素应用填充和描边,除了使用纯色外,还可以使用渐变.本文将详细介绍SVG渐变 线性渐变 有两种类型的渐变:线性渐变和径向渐变.必须给渐变内容指定一个id属性,否则文档内的其他元素不能引用它.为了让渐变能被重复使用,渐变内容需要定义在<defs>标签内部,而不是定义在形状上面 线性渐变沿着直线改变颜色,要插入一个线性渐变,需要在SVG文件的defs元素内部,创建一个<linearGradient> 节点 <svg height="70" v