iOS tabbaritem设置红点大小、自定义宽高
2016-09-18 16:19
344 查看
项目需求,希望当用户存在未读消息的时候在对应的UITabBarItem上显示小红点。发现IOS自带的UITabBarItem的badgeValue尺寸偏大,不满足项目需求。
第一步,建一个UITabBar的category类别。
第二步,编写代码。
.h文件
#import <UIKit/UIKit.h>
@interface UITabBar (badge)
- (void)showBadgeOnItemIndex:(int)index; //显示小红点
- (void)hideBadgeOnItemIndex:(int)index; //隐藏小红点
@end
.m文件
#import "UITabBar+badge.h"
#define TabbarItemNums 4.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
第三步,引入到需要使用的类中。
#import "UITabBar+badge.h"
引用代码如下:
//显示
[self.tabBarController.tabBar showBadgeOnItemIndex:2];
//隐藏
[self.tabBarController.tabBar hideBadgeOnItemIndex:2]
大功告成,接下来看看效果。
第一步,建一个UITabBar的category类别。
第二步,编写代码。
.h文件
#import <UIKit/UIKit.h>
@interface UITabBar (badge)
- (void)showBadgeOnItemIndex:(int)index; //显示小红点
- (void)hideBadgeOnItemIndex:(int)index; //隐藏小红点
@end
.m文件
#import "UITabBar+badge.h"
#define TabbarItemNums 4.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
第三步,引入到需要使用的类中。
#import "UITabBar+badge.h"
引用代码如下:
//显示
[self.tabBarController.tabBar showBadgeOnItemIndex:2];
//隐藏
[self.tabBarController.tabBar hideBadgeOnItemIndex:2]
大功告成,接下来看看效果。
相关文章推荐
- tabbaritem设置红点大小、自定义宽高
- iOS小问题---设置TabBarItem的字体大小、颜色,各种状态下的图片
- iOS设置导航与其标题的颜色及字体大小和系统默认TabBar的相关设置与使用方法
- IOS-26-自定义Item控件在横竖屏运行时大小位置紊乱
- iOS开发- UITabBarController的TabBar、TabBarItem背景颜色设置
- iOS Navigation自定义设置Item
- iOS开发设置关于tabBar和navigationBar以及item中的一些全局属性
- iOS TabBarItem设置红点(未读消息)
- iOS - 设置TabBarItem被选中时的背景
- tabBarItem setBadgeValue 样式自定义(IOS)
- [BS-03] 统一设置UITabBarController管理的所有VC的tabBarItem图标文字的颜色大小等属性
- iOS swift设置导航栏(navigationBar)背景颜色,标题颜色和字体大小,item颜色
- iOS 将navigationItem.titleView设置为自定义UISearchBar (Ficow实例讲解)
- 【iOS开发】设置TabBarItem上文字跟图片一样的颜色
- iOS UITabBarController底部tabbar的item间距设置
- iOS开发~设置导航条颜色,导航条标题颜色、字体大小以及导航条返回按钮及其他Item颜色
- iOS 根据后台设置tabbar (自定义tabbar)
- iOS开发之--如何修改TabBarItem的title的字体和颜色/BarButtonItem的title的字体大小和颜色/添加背景图片,并添加点击方法
- iOS 设置tabBar点击后Item的背景颜色.
- ios 开发中,如何设置 uitabbar 里面 tabbaritem 不显示文字,只显示图片,图片垂直居中?