TabBarItem的Badge

很多时候我们需要在TabBarItem上添加一些红色的Badge用于提示用户这里出现了新内容,可以查看,最常见的莫过于微信的朋友圈,一般红圈Badge包含2种情况:

1)包含数字显示

2)不包含数字显示

默认的情况下TabBarItem中已经有了BadgeValue这个属性,添加Badge时只需为Item设置一个BadgeValue值就可以了,在1)的情况下表现非常良好,但是在2)的情况下如果设置BadgeValue为@""的话,那个红色Badge将会非常的大,显然不合适,那么我们需要做一些调整,如下:

for (UIView *viewTab in tabBar.subviews) {
     for (UIView *subView in viewTab.subviews) {
           NSString *strClassName = [NSString stringWithUTF8String:object_getClassName(subView)];
           if ([strClassName isEqualToString:@"UITabBarButtonBadge"] || // **** iOS 6 prior is UITabBarButtonBadge
               [strClassName isEqualToString:@"_UIBadgeView"]) {        // **** iOS posterior is UITabBarButtonBadge

                CGRect badgeFrame = subView.frame;
                badgeFrame.size = CGSizeMake(8, 8);
                subView.frame = badgeFrame;

                subView.layer.masksToBounds = YES;
                subView.layer.cornerRadius = 4;
                subView.backgroundColor = [UIColor redColor];
                return ;
            }
      }
}

首先需要设置好需要设置Badge的Item,然后添加上面的代码即可,就是把原有的badgeview的frame重新定义了一下。

时间: 2024-10-13 17:01:32

TabBarItem的Badge的相关文章

031实现仿iPhone的底部选项卡

效果如下: ViewController.h 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UITabBarController 4 @end ViewController.m 1 #import "ViewController.h" 2 #import "SampleScene.h" 3 4 @interface ViewController () 5 - (void)layoutU

Swift开发教程--如何自定义TabBarItem的图片显示

在做项目的时候,如果使用系统的UITabBarController的时候,底部的tab自定义图片显示是蓝色和灰色的,这不是我们所想要的效果. 如果想显示自定义的按下和弹起的图片效果,这个时候就需要对TabBarItem进行修改. 以下就是具体的示例: var itemNameArray:[String] = ["down_32","add_32","plane_32","circle_32"] var itemNameSele

IOS8 TabBarItem设置自定义图片问题

1 //IOS8以前使用的是: 2 3 UITabBarItem *photoItem = [[UITabBarItem alloc] initWithTitle:@"首页" image:[UIImage imageNamed:@"app2"] tag:0]; 4 5 photo.tabBarItem = photoItem; 6 7 [photo.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@&q

Badge分析

Badge分析 所谓Badge,原本是iOS上的一个效果,但是被Android抄的多了,也就成了Android的标配.图就不上了,大家都懂的. 应用icon显示角标实际上是在Launcher中实现的,其实不管是角标还是其他对快捷方式的增删改查,都是需要Launcher支持的,应用在增删改查快捷方式和安装.卸载时,都会发出相应的广播,通过这个广播,Launcher会对快捷方式进行修改. 很庆幸,Android原生ROM的Launcher并不具有给icon添加角标的功能,因为Android的设计思想

iOS 开发之 点击tabbarItem添加是否跳转登录页面判断

iOS 开发之 点击tabbarItem添加是否跳转登录页面判断 项目里面在点击tabbarItem的时候需要判断是否是登录状态,如果未登录直接跳转登录页面,如果已登录则直接进入. 首先设置UITabBarController的代理为appdelegate如下:myTabBar.delegate = self; 然后在interface后面写上代理<UITabBarControllerDelegate> 实现代理里面的- (BOOL)tabBarController:(UITabBarCont

Android Badge给应用添加角标

应用角标是iOS的一个特色,原生Android并不支持.或许是因为当时iOS的通知栏比较鸡肋(当然现在已经改进了很多),而Android的通知栏功能强大?所以才出现了一方依赖于数字角标,一方坚持强大的通知栏,在日常使用中这两种交互方式都各有特色,没什么违和感.但是啊,总有人想搞些大新闻: 当收到推送而应用没有未读角标时:安卓---什么烂手机!安卓就是不行!苹果---我靠,这应用竟然连角标都不支持!删掉. 所以啊,众多手机厂商的定制系统或者Launcher都效仿iOS自定义了该功能.如果嫌适配麻烦

更改tabBarItem图片的问题

代码: UIImage *normal = [[UIImage imageNamed:@"tabbar_home_default"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; UIImage *selected = [[UIImage imageNamed:@"tabbar_home_selected"] imageWithRenderingMode:UIImageRenderingMod

tabBarItem setBadgeValue 样式自定义(IOS)

1.将自定义样式的提示点转换成为Image -(UIImage*)convertViewToImage:(UIView*)v{ CGSize s = v.bounds.size; UIGraphicsBeginImageContextWithOptions(s, NO, [UIScreen mainScreen].scale); [v.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage*image = UIGraphicsG

自定义tabBarItem选中和未选中的显示效果

以下代码是在TabBarViewController的ViewControllers的其中一个ViewController的viewDidLoad中写的!!! UIImage *image = [UIImage imageNamed:@"Heart"]; //item未选中状态时,image不使用tintColor的颜色 image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; //添加tabb