本文主要是介绍iOS开发 UITabBar角标 红点形式 (tabBarItem.badgeValue),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有人问到tabbar上自定义角标红点形状,翻了翻以前的项目,找到了,也忘了参考谁的,反正闲着蛋疼,记录一下;
系统的角标 系统有方法,tabBarItem.badgeValue=@"1"
有些需要自定义的,代码如下(UITabBar的类别)
.h里代码
//
// UITabBar+XSDExt.h
// XSD-PK UITabBar类别
//
// Created by 小广 on 15/11/28.
// Copyright © 2015年 XSD. All rights reserved.
//#import <UIKit/UIKit.h>@interface UITabBar (XSDExt)- (void)showBadgeOnItemIndex:(NSInteger)index; ///<显示小红点- (void)hideBadgeOnItemIndex:(NSInteger)index; ///<隐藏小红点@end
.m方法
//
// UITabBar+XSDExt.m
// XSD-PK
//
// Created by 小广 on 15/11/28.
// Copyright © 2015年 XSD. All rights reserved.
//#import "UITabBar+XSDExt.h"#define TabbarItemNums 3.0 //tabbar的数量 如果是5个设置为5@implementation UITabBar (XSDExt)//显示小红点
- (void)showBadgeOnItemIndex:(NSInteger)index{//移除之前的小红点[self removeBadgeOnItemIndex:index];//新建小红点UIView *badgeView = [[UIView alloc]init];badgeView.tag = 888 + index;badgeView.layer.cornerRadius = 5.0;//圆形badgeView.backgroundColor = [UIColor redColor];//颜色:红色CGRect tabFrame = self.frame;//确定小红点的位置CGFloat percentX = (index + 0.6) / TabbarItemNums;CGFloat x = ceilf(percentX * tabFrame.size.width);CGFloat y = ceilf(0.1 * tabFrame.size.height);badgeView.frame = CGRectMake(x, y, 10.0, 10.0);//圆形大小为10badgeView.clipsToBounds = YES;[self addSubview:badgeView];
}//隐藏小红点
- (void)hideBadgeOnItemIndex:(NSInteger)index{//移除小红点[self removeBadgeOnItemIndex:index];
}//移除小红点
- (void)removeBadgeOnItemIndex:(NSInteger)index{//按照tag值进行移除for (UIView *subView in self.subviews) {if (subView.tag == 888+index) {[subView removeFromSuperview];}}
}@end
用法:
//显示[self.tabBarController.tabBar showBadgeOnItemIndex:2];
//隐藏[self.tabBarController.tabBar hideBadgeOnItemIndex:2];
在tabbar的一个VC里调用就行;
栗子如图:
这篇关于iOS开发 UITabBar角标 红点形式 (tabBarItem.badgeValue)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!