美文网首页ios实用开发技巧
项目版本迭代总结 --TabBar

项目版本迭代总结 --TabBar

作者: yunFeng | 来源:发表于2016-09-19 17:29 被阅读288次

    项目做了有大半年了 一直都是赶进度 一直到现在才空点时间 由于产品啥都想抄袭别人的 所以需求就来了 头条上 网易严选的 淘宝的 京东的 。。。

    真的 开发和产品就是上个世纪的战争延续到现在  每次都想拿把刀过去 想过开发进度没  临时还改需求 哈哈 废话多了 唠叨归唠叨 还是要做的  要不到老大那 你就是不行 男人不能不行 所以。。。

    第一、关于 tabBar的一些自定义的 

    用的还是系统的 tabBar  不过在系统的基础上做了一些修改 要修改 badgeValue 值的颜色 第二个是自定义 中间的一个突出按钮  就是在中间有一个按钮是凸起的 要有弧度 可能第三方的也有很多我也找了一个 但是项目开始就自己写了一个基类 所以就不想用第三方了 就自己尝试这能否在原生的基础上去添加目前的需求 终于通过 Google 和自己的一些测试  最后成功了 虽然有些丑 😁  但是功能出来了 所以其他的后续再优化了 这边也只是说下思路 最后给大家一个 demo 做参考 如果大家有更好的想法 也欢迎拍砖 指教 有问题 还是 Google 加http://stackoverflow.com/ 基本就可以满足了 不过要自备梯子了 

    修改 tabBar badgeValue 显示的色值

    修改 badgeValue 色值参考链接

    - (void)changeTabBarbadgeValueColorWithTabBar:(UITabBar*)tabBar

    {

    [tabBar.subviewsenumerateObjectsUsingBlock:^(__kindofUIView*_Nonnullobj,NSUIntegeridx,BOOL*_Nonnullstop) {

    //_UIBadgeViewUITabBarButtonLabel

    [obj.subviewsenumerateObjectsUsingBlock:^(__kindofUIView*_Nonnullobj,NSUIntegeridx,BOOL*_Nonnullstop) {

    //_UIBadgeView

    if([objisKindOfClass:NSClassFromString(@"_UIBadgeView")]) {

    //_UIBadgeBackgroundUILabel

    [obj.subviewsenumerateObjectsUsingBlock:^(__kindofUIView*_Nonnullobj,NSUIntegeridx,BOOL*_Nonnullstop) {

    if([objisKindOfClass:NSClassFromString(@"_UIBadgeBackground")]) {

    [objsetValue:[UIImageimageNamed:@""]forKey:@"image"];

    CGRectobjFrame = obj.frame;

    IBALog(@"%@",NSStringFromCGRect(obj.frame));

    customView.layer.cornerRadius=9.0f;

    customView.layer.masksToBounds=YES;

    customView.backgroundColor=RGB(193.0f,28.0f,28.0f);

    }

    }];

    }

    }];

    }];

    }

    添加 tabBar中间的凸起图片 也是在原生上添加的 这个也是参考第三方的 然后自己去写的

    自定义 tabBar参考链接

    - (void)middleButtonSettingWithTabBar:(UITabBar*)myTabBar viewController:(NSArray*)tempArr middleButtonHidden:(BOOL)hidden

    {

    _middleButton= [UIButtonbuttonWithType:UIButtonTypeCustom];

    _middleButton.backgroundColor= [UIColorwhiteColor];

    _middleButton.layer.borderColor= [UIColorlightGrayColor].CGColor;

    _middleButton.layer.borderWidth=0.0f;

    [_middleButtonaddTarget:selfaction:@selector(middleClick)forControlEvents:UIControlEventTouchUpInside];

    _middleButton.frame=CGRectMake(0,0,50,50);

    _middleButton.center=CGPointMake(self.view.center.x,10);

    [_middleButtonsetImage:[UIImageimageNamed:@"tabBar_shopOwnerNormal"]forState:UIControlStateNormal];

    [_middleButtonsetImage:[UIImageimageNamed:@"tabBar_shopOwnerSelected"]forState:UIControlStateSelected];

    _middleButton.layer.cornerRadius=25;

    self.viewControllers= tempArr;

    if(hidden) {

    [myTabBar.subviewsenumerateObjectsUsingBlock:^(__kindofUIView*_Nonnullobj,NSUIntegeridx,BOOL*_Nonnullstop) {

    if([objisKindOfClass:[UIButtonclass]]) {

    [objremoveFromSuperview];

    }

    if([objisKindOfClass:[UIImageViewclass]]) {

    if(obj.tag==100) {

    [objremoveFromSuperview];

    }

    }

    }];

    myTabBar.shadowImage= [UIImageimageNamed:@"straightLine"];

    [myTabBarsetBackgroundImage:nil];

    }else{

    myTabBar.shadowImage= [UIImagenew];

    [myTabBarsetBackgroundImage:[UIImagenew]];

    UIImageView*bgImage = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"line_bg"]];

    bgImage.tag=100;

    bgImage.frame=CGRectMake(0, -15,CGRectGetWidth(Bounds),CGRectGetHeight(myTabBar.frame));

    [myTabBaraddSubview:bgImage];

    [myTabBarinsertSubview:bgImageatIndex:0];

    [myTabBaraddSubview:_middleButton];

    [myTabBar.superviewbringSubviewToFront:_middleButton];

    }

    myTabBar.backgroundColor= [UIColorwhiteColor];

    [selfsetValue:myTabBarforKey:@"tabBar"];

    }

    以上2个是这次版本迭代遇到的2个比较蛋疼的需求 其他的项目总结 等十一放假再来一篇单独介绍下  希望大家多多拍砖

    相关文章

      网友评论

        本文标题:项目版本迭代总结 --TabBar

        本文链接:https://www.haomeiwen.com/subject/zojnettx.html