UITabBar和UIToolbar

UITabBar和UIToolbar是不同的,必定要分清楚!!!ide

UINavigationController 裏UINavigationBar 和 UIToolbar 是一套的.
當UIViewController視圖self.view加載到KeyWindow屏幕上時navigationbar 和 toolbar也都被添加到了keywindow上,而默認狀況下,toolbar 是隱藏的,是一個很靈活的工具欄,能夠在須要時顯示出來
UITabbarcontroller裏的子視圖UITabbar和UIToolbar是不同的,UITabbar通常看成多個根視圖之間的切換工具,用來嵌套視圖控制器,靈活度不高.工具

通常狀況下,tabbar就是切換不一樣的view,toolbar就是view裏的快捷按鈕差很少spa

 

UITabBarController的底部有一個tabbar,也就是UITabbar對象,用戶控制器之間快速切換。orm

UINavigationController控制器的底部有一個toolbar(默認是隱藏的,可用經過[self.navigationControllersetToolbarHidden:NO])顯示出來,UIToolBar對象,能夠在上面添加UIBarButtonItem當作快捷鍵使用。對象

這是咱們最多見用到UITabbar和UIToolBar的地方,可是其實這兩個對象仍是很好用的,好比你須要定義工具條,是能夠經過建立view,在view上添加按鈕,設置按鈕的位置,爲什麼不用UIToolBar呢,經過UIToolBar的setItems把UIBarButtonItem添加到UIToolBar裏面,他們的位置會自動計算好省去了繁瑣的位置計算。rem

 

說道這裏說一下UITabbar和UIToolBar的區別:get

UITabbar和UIToolBar在不少地方是能夠相互替換使用的,他們的區別是:string

UITabbar上的item,選中時是高亮的,未選中則是普通狀態,而UIToolBar這時沒用高亮的狀態。it

 

常見的建立toolBar的方法以下:io

- (void)setToolBar{

    UIToolbar *toolBar = [[UIToolbar alloc] init];

    NSMutableArray *items = [NSMutableArray array];

    NSArray *itemsettings = @[@{@"imageName":@"compose_toolbar_picture",@"actionName":@"selectPicture"},@{@"imageName":@"compose_mentionbutton_background"},@{@"imageName":@"compose_trendbutton_background"},@{@"imageName":@"compose_emoticonbutton_background",@"actionName":@"selectEmoticonKeyboard"},@{@"imageName":@"compose_add_background"}];

    for (NSDictionary *itemDict in itemsettings) {

        UIButton *btn = [[UIButton alloc] init];

        [btn setBackgroundImage:[UIImage imageNamed:itemDict[@"imageName"]] forState:UIControlStateNormal];

        [btn setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@_highlighted",itemDict[@"imageName"]]] forState:UIControlStateHighlighted];

        [btn sizeToFit];

        NSString *actionStr = itemDict[@"actionName"];

        if ([actionStr isEqualToString:@"selectPicture"]) {

            [btn addTarget:self action:@selector(selectPicture) forControlEvents:UIControlEventTouchUpInside];

        }else if([actionStr isEqualToString:@"selectEmoticonKeyboard"]){

            [btn addTarget:self action:@selector(selectEmoticonKeyboard) forControlEvents:UIControlEventTouchUpInside];

        }

        UIBarButtonItem *barItem = [[UIBarButtonItem alloc] initWithCustomView:btn];

        [items addObject:barItem];

        //添加彈簧 等間距

        UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

        [items addObject:spaceItem];

    }

    [items removeLastObject];

    toolBar.items = items;

    [self.view addSubview:toolBar];

    [toolBar mas_makeConstraints:^(MASConstraintMaker *make) {

        make.left.right.bottom.equalTo(self.view);

        make.height.mas_equalTo(44);

    }];    

}

相關文章
相關標籤/搜索