UItabBar设置的一些设置 合一些效果实现 设置badgeValue的方法封装

ios默认的样式不太适合我们的应用,可以通过一下方法设置相关属性: 
设置背景: 
[_tabBar setBackgroundImage:[UIImage imageNamed:@"bg_tabbar"]];

设置某个Item选中的效果: 
_tabBar.selectionIndicatorImage = [UIImage imageNamed:@"bar_item_selected"];//设置选中效果图片 

设置UITabBarItem文字颜色 
[[UITabBarItem appearance] setTitleTextAttributes:@{ UITextAttributeTextColor : [UIColor whiteColor] } 
forState:UIControlStateNormal]; 
[[UITabBarItem appearance] setTitleTextAttributes:@{ UITextAttributeTextColor : [UIColor whiteColor] } 
forState:UIControlStateHighlighted]; 

设置UITabBarItem未选中与选中时的图片: 

[_hotTabItem setFinishedSelectedImage:[UIImage imageNamed:@"1_selected"] withFinishedUnselectedImage:[UIImage imageNamed:@"1"]]; 
[_searchTabItem setFinishedSelectedImage:[UIImage imageNamed:@"2_selected"] withFinishedUnselectedImage:[UIImage imageNamed:@"2"]]; 
[_userTabItem setFinishedSelectedImage:[UIImage imageNamed:@"3_selected"] withFinishedUnselectedImage:[UIImage imageNamed:@"3"]]; 
上述方法基本可以满足了。 
如果还不行可以自定义实现UITabBar。


    bottomBar = [[UITabBaralloc] initWithFrame:CGRectMake(0,CGRectGetMaxY(sframe)-25,self.view.frame.size.width,0)];//初始隐藏bottomBar

    //[bottomBar setDelegate:self];

    [self.viewaddSubview:bottomBar];

   //按钮

   CGFloat btnWidth = (sframe.size.width-165)/2;//两个按钮

    CGFloat btnTop =0;//sframe.size.height-barHeight;

   CGFloat _barHeight = dHeightBar;

   MU_tabButton* btn1 = [[MU_tabButtonalloc] initWithFrame:CGRectMake(0, btnTop, btnWidth, _barHeight)];

    

    [btn1 addTarget:selfaction:@selector(selectAllClicked:)forControlEvents:UIControlEventTouchUpInside];

    [btn1 setBgImg:dImgTabBgandIconImg:dImgSelectAllandTitle:@"全选"withColor:dColorTabTextNormalforState:UIControlStateNormal];

   MU_tabButton* btn2 = [[MU_tabButtonalloc] initWithFrame:CGRectMake(btnWidth, btnTop, btnWidth, _barHeight)];

    [btn2 setBackgroundImage:dImgTabClickedforState:UIControlStateHighlighted];

    [btn2 addTarget:selfaction:@selector(deleteClicked:)forControlEvents:UIControlEventTouchUpInside];

    [btn2 setBgImg:dImgTabBgandIconImg:dImgDeleteandTitle:@"删除"withColor:dColorTabTextNormalforState:UIControlStateNormal];

    [bottomBaraddSubview:btn1];

    [bottomBaraddSubview:btn2];

///其中MU_tabButton 为自定义类型

主要属性包含如下:

- (id)initWithFrame:(CGRect)frame

{

   self = [superinitWithFrame:frame];

   if (self) {

        // Initialization code

       CGFloat iconHeight = frame.size.height*3/5;

       //文字

       titleLabel = [[UILabelalloc] initWithFrame:CGRectMake(0, iconHeight, frame.size.width, frame.size.height- iconHeight)];

        titleLabel.backgroundColor = [UIColorclearColor];

       titleLabel.textColor = [UIColorwhiteColor];

        titleLabel.textAlignment =NSTextAlignmentCenter;

       titleLabel.font = [UIFontsystemFontOfSize:13];

        [selfaddSubview:titleLabel];

       //图标

       CGFloat iconGap = 3;

       CGFloat iconSize = iconHeight - iconGap;//图标大小

       iconView = [[UIImageViewalloc] initWithFrame:CGRectMake((frame.size.width- iconSize)/2, iconGap, iconSize, iconSize)];

        [selfaddSubview:iconView];

    }

    return self;

}


-(void)setBgImg:(UIImage *)bgImg andIconImg:(UIImage *)img andTitle:(NSString *)title  withColor:(UIColor*)tColor forState:(UIControlState)state

{

    [selfsetBackgroundImage:bgImg forState:UIControlStateNormal];

   iconView.image = img;

   titleLabel.text = title;

   titleLabel.textColor = tColor;

}



-(void)setBadgeValue:(NSString*)val atTabIndex:(int)index

{

    //   UITabBarItem* tab = [[bottomBtnBar items] objectAtIndex:2*index];

    UITabBarItem* tab = [[bottomBtnBar items] objectAtIndex:index];

    if ([val integerValue] <= 0) {

        tab.badgeValue = nil;

    }

    else

    {

        tab.badgeValue = val;

    }

}


-(NSString*)getBadgeValueAtIndex:(int)index

{

    UITabBarItem* tab = [[bottomBtnBar items] objectAtIndex:index];

    return tab.badgeValue;

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值