自定义UITabbar和navigationBar
来源:互联网 发布:无风险套利知乎 编辑:程序博客网 时间:2024/05/23 17:13
一.UITabbar创建步骤:
1.移除系统自带的UITabbar,注意要在视图将要出现时调用,否则无效.(写在viewDidLoad中失败的原因:
在使用storyboard中搭建三级控制器的时候:
在viewDidLaod中移除后,storyboard还没有加载完.当再加载二级控制器的时候,会从新给他添加上tabBar和btn.)
2.自定义UITabbar
二.自定义UITabbar和navigationBar的代码实现:
// MainTabBarController.h// WXMovie// Created by bing on 16/7/18.// Copyright © 2016年 bing. All rights reserved.#import <UIKit/UIKit.h>@interface MainTabBarController : UITabBarController@end
// MainTabBarController.m// WXMovie// Created by bing on 16/7/18.// Copyright © 2016年 bing. All rights reserved.#import "MainTabBarController.h"#import "WXTabBarButton.h"#import "Common.h"@interface MainTabBarController (){ UIImageView *selectImageV; //选中滑块}@end@implementation MainTabBarController//视图已经加载完成后- (void)viewDidLoad { [super viewDidLoad]; //1 移除tabbarButton// [self _removeTabBarButton]; //2 自定义TabBar [self _customTabBar]; //3 自定义navigationBar [self _customNavigationBar];}//视图将要出现-(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated];/* 写在viewDidLoad中失败的原因: 在使用storyboard中搭建三级控制器的时候: 在viewDidLaod中移除后,storyboard还没有加载完.当再加载二级控制器的时候,会从新给他添加上tabBar和btn. */ //移除自带UITabbar [self _removeTabBarButton];}//移除自带UITabbar的方法-(void)_removeTabBarButton{ for (UIView *view in self.tabBar.subviews) { Class class =NSClassFromString(@"UITabBarButton"); if ([view isKindOfClass:class]) { [view removeFromSuperview]; } }}-(void)_customTabBar{ //1 背景图片 self.tabBar.backgroundImage = [UIImage imageNamed:@"tab_bg_all"]; //2 标题 NSArray *titles =@[@"首页",@"新闻",@"Top",@"影院",@"更多"]; //3 button上的图片 NSArray *imageNames =@[@"movie_home",@"msg_new",@"start_top250",@"icon_cinema",@"more_setting"]; //4 button的宽度 float buttonWidth =KScreenWidth/titles.count; //5 选中图片 selectImageV = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 55, 50)]; selectImageV.image = [UIImage imageNamed:@"selectTabbar_bg_all1"]; [self.tabBar addSubview:selectImageV];// 6 创建5个button for (int i =0; i<titles.count; i++) { NSString *title = titles[i]; NSString *imageName = imageNames[i]; CGRect frame = CGRectMake(i*buttonWidth, 0, buttonWidth, 49); WXTabBarButton *button = [[WXTabBarButton alloc]initWithFrame:frame withImageName:imageName withTitle:title]; button.tag = 1000+i; [button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside]; //当首次的时候,确定滑块的位置 if (i ==0) { selectImageV.center = button.center; } [self.tabBar addSubview:button]; }}-(void)buttonAction:(UIButton*)btn{ //1 界面切换 self.selectedIndex =btn.tag-1000; //2 滑块的切换 [UIView animateWithDuration:0.3 animations:^{ selectImageV.center = btn.center; }];}-(void)_customNavigationBar{ //1 遍历每个导航控制器 5个navigationBar// for (UINavigationController *navi in self.viewControllers) {// // [navi.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bg_all-64"] forBarMetrics:UIBarMetricsDefault];// } //2 使用appearance UINavigationBar //作用:可以改变UINavigationBar的默认的样式. //只有改代码执行之后,默认的样式才改变 [[UINavigationBar appearance]setBackgroundImage:[UIImage imageNamed:@"nav_bg_all-64"] forBarMetrics:UIBarMetricsDefault]; }@end
创建效果:
0 0
- 自定义UITabbar和navigationBar
- 自定义实现UITabBarController和UITabBar
- 自定义UITabBarController、UITabBar和UIButton
- 自定义UITabBar
- 自定义UITabbar
- 自定义UITabBar
- UITabBar 自定义
- 自定义UITabbar
- UITabBar 自定义
- 自定义navigationbar
- 自定义NavigationBar
- 自定义 NavigationBar
- 自定义NavigationBar
- 自定义NavigationBar
- 自定义NavigationBar的返回按钮和标题
- iOS7自定义statusbar和navigationbar的若干问题
- UITabBar和UINavigation组合使用与自定义样式(iOS)
- UITabBar自定义tabbar如何隐藏和显示,超实用
- memset函数初始化数组
- poj 2586 Y2K Accounting Bug
- too old (format 29) to work with client version '1.8.9 (r1591380)' (expects format 31).
- Android 开发环境eclipse配置ADT,app结构认识,TextView及其添加点击事件的3种方式
- 初识代码
- 自定义UITabbar和navigationBar
- HDU:1237 简单计算器(栈)
- POJ【1185】——炮兵阵地
- Smith Numbers(欧拉函数,容斥原理)
- 关于方法的覆盖与重载
- python中,单下划线与双下划线的命名方式(私有和保护)
- js动态加载脚本
- 看病要排队hd 1873
- 用两个栈实现队列