娱乐大咖项目- 总结

一,基本配置

1.首先的需要搭配一些骨架,本项目采用的根控制器时以TabBarController为根控制器。

第一个修改点:

image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

这句是使图片保持以前的样子,而不被系统修改为蓝色

上述是代码,也可以通过Assets.xcassets也就是专门管理图片的,点击修改图片的一个属性即可,改为Rende As 改为Original Image就可以

第二个修改点:

UIViewController *vc = [[UIViewController alloc]init];

NSMutableDictionary *dict = [NSMutableDictionary dictionary];

dict[NSFontAttributeName] = [UIFont systemFontOfSize:13];

dict[NSForegroundColorAttributeName] = [UIColor whiteColor];

[vc.tabBarItem setTitleTextAttributes:dict forState:UIControlStateNormal];

// 上述就是单独修改控制器下TabBarItem中文字颜色当被点击时,不被系统改动,当然也有一个更好的方法.

// 通过UitabBarItem中Appearance的属性来修改多个Item中文字的属性更改

NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    attrs[NSFontAttributeName] = [UIFont systemFontOfSize:12];
    attrs[NSForegroundColorAttributeName] = [UIColor grayColor];

    NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
    selectedAttrs[NSFontAttributeName] = attrs[NSFontAttributeName];
    selectedAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor];

    UITabBarItem *item = [UITabBarItem appearance];
    [item setTitleTextAttributes:attrs forState:UIControlStateNormal];

    [item setTitleTextAttributes:selectedAttrs forState:UIControlStateSelected];

这样也就可以通过多个子控制器中,只需要设置一次就可以满足所有其当中属性更改,当然也需要方法后面有

UI_APPEARANCE_SELECTOR;才能利用Appearance统一设置

2.自定义子控器

// 建立一个初始化子控制器的方法
- (void)setUpChildVc:(UIViewController *)vc title:(NSString *)title image:(NSString *)Image selectedImage:(NSString *)selectedImage{
    vc.tabBarItem.title = title;
    vc.tabBarItem.image = [UIImage imageNamed:Image];
    vc.tabBarItem.selectedImage = [UIImage imageNamed:selectedImage];

    // 包装一个导航控制器, 添加导航控制器为tabbarcontroller的子控制器
    ZWNavigationController *naVc = [[ZWNavigationController alloc]initWithRootViewController:vc];
    [self addChildViewController:naVc];
}

这样就方便简化ViewDidload中的代码量,也同时减少了代码冗余。

项目截图:如果要的得到类似的TabBar控制器的话,就必须得自定义

2.2 自定义TabBar

// 更换tabBar
    //    self.tabBar = [[XMGTabBar alloc] init]; tabar属性为只读属性,所以可以通过kvc的方式来替换系统的tabbar
    [self setValue:[[ZWTabBar alloc] init] forKeyPath:@"tabBar"];

通过KVC的方式来修改_TabBar来达到修改TabBar的属性

然后通过layoutSubviews的方法来改变所需TabBar的样式

- (void)layoutSubviews
{
    [super layoutSubviews];
    CGFloat width = self.width;
    CGFloat height = self.height;

    // 设置发布按钮的frame
    self.publishButton.bounds = CGRectMake(0, 0, self.publishButton.currentBackgroundImage.size.width , self.publishButton.currentBackgroundImage.size.height);

    self.publishButton.center = CGPointMake(width * 0.5, height * 0.5);

    // 设置其他UITabBarButton的frame
    CGFloat buttonY = 0;
    CGFloat buttonW = width / 5;
    CGFloat buttonH = height;
    NSInteger index = 0;
    for (UIView *button  in self.subviews) {
         if (![button isKindOfClass:[UIControl class]] || button == self.publishButton) continue;
        // 计算按钮的x值
        CGFloat buttonX = buttonW * ((index > 1)?(index + 1):index);
        button.frame = CGRectMake(buttonX, buttonY, buttonW, buttonH);

        // 增加索引
        index++;
    }

}

通过上述代码就能得到上述图片的样式.

时间: 2024-10-06 09:19:45

娱乐大咖项目- 总结的相关文章

24位互联网大咖的人生预言

11月19日,首届世界互联网大会在浙江乌镇拉开帷幕.大咖们如何预测互联网的未来?提出哪些新颖看法?一分钟了解观点精华. 马化腾 腾讯公司控股董事会主席兼首席执行官 ▲总体而言,中国互联网与美国还是有差距的.中国互联网发展瓶颈一个是互联网基础设施建设另一个是软性的--创业环境. ▲互联网已经改变了音乐.游戏.媒体.零售和金融等行业,未来互联网精神将改变每一个行业,传统企业一定要具备互联网思维. 刘强东 京东集团CEO ▲中国互联网的发展瓶颈一个是诚信问题,另一个是城乡差距. ▲现在已经实现了"所需

如何成为一位牛逼的大咖

每个人都想过做一件牛逼的事情,做一个牛逼的项目,或者想成为一个牛逼的大咖.甚至我们还不懂到底什么是大咖,所谓的"大咖"其实就是在某个领域有这一定影响力,拥有众多的粉丝和号召力的人.如果想成为一位牛逼的大咖,那么你必须在某个领域有着自己的独有的价值.做大咖很多人以为会很舒服,人只要出了名什么好事都会轮到他.不但会获得很多的社会资源还有很多的商业价值.所以,能成为一位牛逼的大咖说明已经非常成功了,就是不操作什么项目也活得相当滋润了.很多人把我当成了大咖来向我讨教经验,其实我也不是什么大咖,

章苏阳、李丰等48位创投大咖与你有约!

章苏阳.李丰等48位创投大咖与你有约! 全球名校创业创投大赛 复旦大学中国风险投资研究中心牵头联合上海市虹口区人力资源与社会保障局.AngelsGlobal跨境天使平台.AlumX全球名校创客会和全球20余所名校共同发起创业创投大赛,是本年度最有价值的创投盛会.l 创业项目都有新颖而强大的科技作支撑 ll 评委嘉宾均是资本创投界的高级别大咖 l是门槛也是保障起点高,则成就更高你,准备好被科技震撼了吗? Oded Hermorni 美国犹太人创业协会会长 张陆洋 复旦大学中国风险投资研究中心主任

终极大招 | 应用性能管理大讲堂2016年终盛典,数位大咖火爆来袭

在即将过去的2016年里,身为程序猿/运维攻城狮的你是否还经常陷在和产品经理剪不断理还乱的复杂关系中,在项目上线遇到性能问题后又沉浸在各部门之间的扯皮中,在这一年里项目研发过程中是否又有意无意的进了不少坑,又不断把它们一个一个填平. "你先别踩,等我填好了坑你再来."变成了程序员之间最赤裸裸的关怀. 这样不对!我们拒绝填那些没有意义的坑! 应用性能管理大讲堂2016年终盛典之心路,即将迎来更全面的技术干货,更强大的讲师阵容,一起听互联网金融.O2O.游戏.OTA.电商.在线视频行业领域

急!!!寻求redis大咖!

寻求redis大咖来我司进行培训1.基于linux的redis项目,高并发使用,监控管理及参数调优培训2.基于linux的redis项目客户端优先级.订阅发布队列优先级等接口的使用.存在的陷阱及实战经验3.redis的客户端基于C++的开发培训4.redis集群.复制.部署及优化和实践经验已有实践,redis每秒3000到4000消息吞吐实践,希望向高级进阶,希望提供如何使用.规模.开发时间等的描述.欢迎有意向的大咖联系我哦,qq:1367883780

阿里云MVP携手博客园,寻找下一个MVP!专属服务、大咖交流、企业游学等你来!申请就送100元代金券!

"传递技术力量,传承布道精神."阿里云MVP(最有价值专家)第七期全球招募开启,与博客园携手,寻找热爱技术.乐于分享.关注个人成长的你! 戳链接,通过[博客园绿色通道]一键直达: https://mvp.aliyun.com/mvp/apply?recommendType=2&recommendId=qxJWelDeU8KrQWUUyLKtYw== 前20名申请即提供100元代金券,认证成功还送阿里云T-shirt. 如果你是资深开发者,想第一时间接触最新云技术,实现个人能力跃

2020第十三届春季国际物联网展览会-南京站3月邀约各位大咖

邀 请 函 时间:2020年03月26-28日 地点:中国?南京国际会展中心4组织单位 特邀单位:××× ×××商务部主办单位:北京铭世博国际展览有限公司 支持单位:××× ×××中国智能家居产业联盟 中华物联网联盟国家信息化专家咨询委员会 中国物联网产业协会 承办单位:北京铭世博国际展览有限公司物联世界 智慧全球前言南京六朝古都是中国东部地区重要的中心城市.全国重要的科研基地和综合交通枢纽,是长江三角洲唯一的特大城市和长三角辐射带动中西部地区发展重要门户城市.首批国家历史文化名城和全国重点风景

【代班大咖第二期】我想聊聊高科技

从很小的时候开始,我们的小脑袋里就充满了奇思妙想 为什么鸟儿会飞而我不可以 为什么月亮有的时候是圆的有的时候是弯的 为什么汽车可以跑的那么快 有些问题的答案爸爸妈妈可以告诉我,有些他们也不知道. 后来我们上了学,接触到了很多课本上的知识,可我们依旧有许许多多的问题, 为什么左手定则可以判断安培力和洛伦兹力 为什么生成新物质的反应才是化学反应 这些问题老师会说不重要,记住考点就可以 再后来,我们长大了 我们不再被动地接受知识,在互联网的世界里,我们看见了一个更为广阔的天地. 无人机.VR.AI.3

视频会议及流媒体十大开源项目

在视频会议领域,有许多可以值得参考的开源项目,这些开源项目有的是协议栈.有的是编码器或者是传输协议,由于视频会议系统是一个综合性的应用系统,里面包含功能较多,如能把这些开源项目选择性的加入我们的视频会议开发当中,我们的开发效率肯定会事半功倍,下面我们列举一下视频会议相关的十大开源项目,并对其重要性及优缺点做一个全面的评价与排名. 1. OpenH323项目        (★★★★★) 上榜理由:最著名的H.323开源协议栈,视频会议开发必备协议栈,强烈推荐 最著名的H.323开源协议栈,包含了