- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // 1. 创建窗口
self.window = [[UIWindow alloc] init];
self.window.frame = [UIScreen mainScreen].bounds; // 2. 设置根控制器
UITabBarController *tabbarVc = [[UITabBarController alloc] init];
self.window.rootViewController = tabbarVc; // 3. 设置子控制器属性
DJHomeViewController *homeVc = [[DJHomeViewController alloc] init];
[self setChildVc:homeVc withTitle:@"首页" image:@"tabbar_home" selectedImage:@"tabbar_home_selected"]; DJMessageCenterViewController *messageCenterVc = [[DJMessageCenterViewController alloc] init];
[self setChildVc:messageCenterVc withTitle:@"消息" image:@"tabbar_message_center" selectedImage:@"tabbar_message_center_selected"]; DJDiscoverViewController *discoverVc = [[DJDiscoverViewController alloc] init];
[self setChildVc:discoverVc withTitle:@"发现" image:@"tabbar_discover" selectedImage:@"tabbar_discover_selected"]; DJProfileViewController *profileVc = [[DJProfileViewController alloc] init];
[self setChildVc:profileVc withTitle:@"我" image:@"tabbar_profile" selectedImage:@"tabbar_profile_selected"]; // 4. 添加子控制器
[tabbarVc addChildViewController:homeVc];
[tabbarVc addChildViewController:messageCenterVc];
[tabbarVc addChildViewController:discoverVc];
[tabbarVc addChildViewController:profileVc]; // 5. 显示窗口
[self.window makeKeyAndVisible];
return YES;
} - (void)setChildVc:(UIViewController *)vc withTitle:(NSString *)title image:(NSString *)image selectedImage:(NSString *)selectedImage { vc.view.backgroundColor = DJRandomColor;
vc.tabBarItem.title = title; // 设置tabbarItem 选中图片
vc.tabBarItem.image = [UIImage imageNamed:image];
vc.tabBarItem.selectedImage = [[UIImage imageNamed:selectedImage] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; // 设置tabarItem 选中颜色
NSMutableDictionary *textAttrs = [NSMutableDictionary dictionary];
textAttrs[NSForegroundColorAttributeName] = DJColor(, , ); NSMutableDictionary *selectedTextAttrs = [NSMutableDictionary dictionary];
selectedTextAttrs[NSForegroundColorAttributeName] = [UIColor orangeColor]; [vc.tabBarItem setTitleTextAttributes:textAttrs forState:UIControlStateNormal];
[vc.tabBarItem setTitleTextAttributes:selectedTextAttrs forState:UIControlStateSelected]; }

最终效果:

新浪微博客户端(1)-实现Tabbar导航栏效果的更多相关文章

  1. 微信小程序------导航栏样式、tabBar导航栏

    一:导航栏样式设置 小程序的导航栏样式在app.json中定义. 这里设置导航,背景黑色,文字白色,文字内容测试小程序 app.json内容: { "pages":[ " ...

  2. 微信小程序入门四: 导航栏样式、tabBar导航栏

    实例内容 导航栏样式设置 tabBar导航栏 实例一:导航栏样式设置 小程序的导航栏样式在app.json中定义. 这里设置导航,背景黑色,文字白色,文字内容测试小程序 app.json内容: { & ...

  3. 【分享】纯jQuery实现星巴克官网导航栏效果

    前言 大冬天的没得玩,只能和代码玩. 所以就无聊研究了一下星巴克官网,在我看来应该是基本还原吧~ 请各位大神指教! 官网效果图 要写的就是最上方的会闪现的白色条条 效果分析 1.在滚动条往下拉到一定距 ...

  4. 移动端如何用swiper实现导航栏效果

    在移动端如何用swiper实现导航栏效果 我们在写移动端的时候会有滑动和点击导航后滑动到目标页面功能:而这个功能如果自己写的话会很麻烦,所以我在这推荐一下swiper这个插件. 其实swiper中的官 ...

  5. 【方法】纯jQuery实现星巴克官网导航栏效果

    前言 大冬天的没得玩,只能和代码玩. 所以就无聊研究了一下星巴克官网,在我看来应该是基本还原吧~ 请各位大神指教! 官网效果图 要写的就是最上方的会闪现的白色条条 效果分析 1.在滚动条往下拉到一定距 ...

  6. Android之仿今日头条顶部导航栏效果

    随着时间的推移现在的软件要求显示的内容越来越多,所以要在小的屏幕上能够更好的显示更多的内容,首先我们会想到底部菜单栏,但是有时候像今日头条新闻客户端要显示的内容太多,而且又想在主界面全部显示出来,所以 ...

  7. css3制作炫酷导航栏效果

    今天主要利用hover选择器.鼠标滑过查看效果. 一.普通导航栏 Home Content Service Team Contact 对于这种普通的导航栏,只是鼠标滑过的时候颜色会变,所以思路变得很简 ...

  8. Android仅2步实现 滚粗 汉堡导航栏效果~ 全新底部导航交互(滑动隐藏)

    本文同步自wing的地方酒馆 布吉岛大家有木有看这一篇文章,再见,汉堡菜单,我们有了新的 Android 交互设计方案 本库下载地址:https://github.com/githubwing/Bye ...

  9. Flutter - TabBar导航栏切换后,状态丢失

    上一篇讲到了 Flutter - BottomNavigationBar底部导航栏切换后,状态丢失 里面提到了TabBar,这儿专门再写一下吧,具体怎么操作,来不让TabBar的状态丢失.毕竟大家99 ...

随机推荐

  1. java从0开始学——数组,一维和多维

    #,在java中,允许数组的长度为0:也就是允许      int[] zeroLenthArray = new int[0]; #,匿名的数组初始化是合法的:     int[] smallPrim ...

  2. Python解析器源码加密系列之(一):标准c的tmpfile()、tmpfile_s()生成的临时文件究竟放在哪里了?

    这两天由于修改python解释器的需求,需要用到tmpfile()来生成临时文件的FILE*,但是又担心这个临时文件是否存在于磁盘的某个地方,终究会被人找到,所以就简单做了以下几点实验,看看是否可以找 ...

  3. Opencv step by step - 自适应阈值

    上个博客提到的阈值化只是针对图像全局进行阈值化,opencv提供了一个更好的函数cvAdaptiveThreshold,可以做到局部特征的阈值化,这样一来, 整个图像的信息可以被更好的提取. #inc ...

  4. 使用IDEA进行代码托管

    在idea菜单栏的file中打开settings/搜索git,配置path to Git executable:C:\Program Files\Git\bin\git.exe(git bash的安装 ...

  5. [原创]Net实现Excel导入导出到数据库(附源码)

    关于数据库导出到Excel和SQLServer数据导出到Excel的例子,在博客园有很多的例子,自己根据网上搜集资料,自己做了亦歌简单的demo,现在分享出来供初学者学习交流使用. 一.数据库导入导出 ...

  6. 游戏世界之Unity3D的基础认识

    1.写在前面 Unity3D是由Unity Technologies开发的一个让你轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏 ...

  7. Cordova4.0 系列 -- 基本环境搭建(1)

    一. 安装Node.js基本环境 官网下载地址:https://nodejs.org/ 安装成功之后可以使用简单命令查看其版本 node -v npm相关命令 node cli.js install ...

  8. 如何使用bat命令批量删除指定文件名字的符号

    新建一个TXT文本,将下面的内容复制进去 @Echo Off&SetLocal ENABLEDELAYEDEXPANSIONFOR %%a in (*) do (set "name= ...

  9. node的实践(项目二)

    找以前看看简单的demo,看看node是怎么操作Mongo然后又是渲染前台的,与前面的项目一中的对比. 1.操作Mongo数据库的方法和方式. var mongodb = require('./db' ...

  10. css翻页样式

    /*=======================翻页样式===========================*/.pages { width: 660px; text-align: center; ...