Tabbaritem设置红点大小、自定义宽高
2016-04-07 15:57
381 查看
项目需求,希望当用户存在未读消息的时候在对应的UITabBarItem上显示小红点。
发现IOS自带的UITabBarItem的badgeValue尺寸偏大,不满足项目需求。
分类名字: @interface UITabBar (badge)
在FindViewCtl导入 添加方法即可
#import "UITabBar+badge.h"
// 小红点相关
- (void)viewDidLoad
{
//显示小红点
[self.tabBarController.tabBar
showBadgeOnItemIndex:3];
//隐藏小红点
//[self.tabBarController.tabBar hideBadgeOnItemIndex:3];
}
.h
#import <UIKit/UIKit.h>
@interface UITabBar (badge)
- (void)showBadgeOnItemIndex:(int)index;
//显示小红点
- (void)hideBadgeOnItemIndex:(int)index;
//隐藏小红点
@end
.m
#import "UITabBar+badge.h"
#define TabbarItemNums 5.0
//tabbar的数量
如果是5个设置为5.0
@implementation UITabBar (badge)
//显示小红点
- (void)showBadgeOnItemIndex:(int)index{
//移除之前的小红点
[self
removeBadgeOnItemIndex:index];
//新建小红点
UIView *badgeView = [[UIView
alloc]init];
badgeView.tag =
888 + index;
badgeView.layer.cornerRadius =
5;//圆形
badgeView.backgroundColor = [UIColor
redColor];//颜色:红色
CGRect tabFrame =
self.frame;
//确定小红点的位置
float 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,
10);//圆形大小为10
[self
addSubview:badgeView];
}
//隐藏小红点
- (void)hideBadgeOnItemIndex:(int)index{
//移除小红点
[self
removeBadgeOnItemIndex:index];
}
//移除小红点
- (void)removeBadgeOnItemIndex:(int)index{
//按照tag值进行移除
for (UIView *subView
in self.subviews) {
if (subView.tag ==
888+index) {
[subView removeFromSuperview];
}
}
}
@end
发现IOS自带的UITabBarItem的badgeValue尺寸偏大,不满足项目需求。
分类名字: @interface UITabBar (badge)
在FindViewCtl导入 添加方法即可
#import "UITabBar+badge.h"
// 小红点相关
- (void)viewDidLoad
{
//显示小红点
[self.tabBarController.tabBar
showBadgeOnItemIndex:3];
//隐藏小红点
//[self.tabBarController.tabBar hideBadgeOnItemIndex:3];
}
.h
#import <UIKit/UIKit.h>
@interface UITabBar (badge)
- (void)showBadgeOnItemIndex:(int)index;
//显示小红点
- (void)hideBadgeOnItemIndex:(int)index;
//隐藏小红点
@end
.m
#import "UITabBar+badge.h"
#define TabbarItemNums 5.0
//tabbar的数量
如果是5个设置为5.0
@implementation UITabBar (badge)
//显示小红点
- (void)showBadgeOnItemIndex:(int)index{
//移除之前的小红点
[self
removeBadgeOnItemIndex:index];
//新建小红点
UIView *badgeView = [[UIView
alloc]init];
badgeView.tag =
888 + index;
badgeView.layer.cornerRadius =
5;//圆形
badgeView.backgroundColor = [UIColor
redColor];//颜色:红色
CGRect tabFrame =
self.frame;
//确定小红点的位置
float 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,
10);//圆形大小为10
[self
addSubview:badgeView];
}
//隐藏小红点
- (void)hideBadgeOnItemIndex:(int)index{
//移除小红点
[self
removeBadgeOnItemIndex:index];
}
//移除小红点
- (void)removeBadgeOnItemIndex:(int)index{
//按照tag值进行移除
for (UIView *subView
in self.subviews) {
if (subView.tag ==
888+index) {
[subView removeFromSuperview];
}
}
}
@end
相关文章推荐
- 移动端H5适配流程
- 安卓开发中内存问题分析(一)工具篇
- 码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清
- 工作中实际问题
- bug日志
- 数组中超过一半的数
- xml方法封装
- C++实现——两个大数相乘
- bzoj1926: [Sdoi2010]粟粟的书架
- ProcExp和TaskMgr的列对比
- IOS图片操作
- 手把手玩转协同编辑(1):AST (Address Space Transformation)地址空间转换算法 基本介绍
- 我的开篇
- cxf Interceptor 转化 multipart/form-data类型数据
- 第四阶段 :安全与监控 Linux监控和安全运维
- Activity中finish()和onDestroy()的区别
- [Study Notes][002][gstreamer] 的环境变量设定
- 升级java1.8及ssh版本中碰到的问题(一)
- Jenkins安装与配置
- Redis和memcached的区别