`
wx1569020408
  • 浏览: 26867 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

在任意UIView上显示Badge

 
阅读更多

UITabBar的选项卡上有时会需要显示一个红圈,红圈里是数字或者其他字符,术语叫徽章,比如微信主页面主选项卡上会用这种方式提示新消息条数,但也想在其他地方显示这个徽章怎么办呢?比如微信中每个联系人的头像右上角显示该联系人的新消息条数。当然有第三方的源码,但效果还是不如系统提供的好。

系统这个徽章的类叫UITabBarButtonBadge,但是该类是个私有类,开发人员不能用。先贴源码

[plain] view plaincopy

  1. + (UIView *)addBadgeViewTo:(UIView *)superview withBadgeValue:(NSString *)strBadgeValue  

  2. {  

  3.     UITabBar *tabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];  

  4.     UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"" image:nil tag:0];  

  5.     item.badgeValue = strBadgeValue;  

  6.     NSArray *array = [[NSArray alloc] initWithObjects:item, nil];  

  7.     tabBar.items = array;  

  8.     [item release];  

  9.     [array release];  

  10.     //寻找  

  11.     for (UIView *viewTab in tabBar.subviews) {  

  12.         for (UIView *subview in viewTab.subviews) {  

  13.             NSString *strClassName = [NSString stringWithUTF8String:object_getClassName(subview)];  

  14.             if ([strClassName compare:@"UITabBarButtonBadge"] == NSOrderedSame) {  

  15.                 //从原视图上移除  

  16.                 [subview removeFromSuperview];  

  17.                 //  

  18.                 [superview addSubview:subview];  

  19.                 [tabBar release];  

  20.                 return subview;  

  21.             }  

  22.         }  

  23.     }  

  24.     [tabBar release];  

  25.     return nil;  

  26. }  


输入参数为想要显示徽章的UIView和徽章上要显示的字符串,返回徽章的UIView以调整徽章的位置。


转载于:https://my.oschina.net/u/2242007/blog/352918

分享到:
评论

相关推荐

    通过协议扩展高斯模糊任意 UIView.zip

    本项目“通过协议扩展高斯模糊任意 UIView”提供了一种优雅的方式来为Swift中的UIView添加高斯模糊功能,无需为每个需要模糊的视图创建单独的类或方法。下面将详细解析这个开源项目的实现原理、使用方法及其优势。 ...

    用SSBadgeView实现显示badge的cell

    `SSBadgeView`是一个轻量级的库,它允许开发者方便地在任何UIView上添加和定制Badge视图。 首先,我们需要了解`UITableView`的基本概念。UITableView是iOS中的一个关键控件,用于展示列表数据。每个单元格(Cell)...

    IOS简单,轻松实现badge

    Badge是iOS用户界面中一个小型的通知元素,通常显示在应用图标右上角,用于提示用户有新的未处理信息或更新。它可以是纯数字,也可以是简单的文字,例如“New”或“Update”。 在iOS中实现badge功能,我们可以通过...

    UIView/UIButton任意添加某个边框

    但是,`UIView`默认没有开启边框,所以我们需要先调用`setNeedsLayout()`方法更新布局,然后设置`layer.masksToBounds = true`以确保边框在视图内部显示。 ```swift let view = UIView() view.layer.borderWidth = ...

    ios-一句代码设置UIView及其子类的badgeValue.zip

    一句代码设置UIView及其子类的badgeValue,默认右上角显示 cocoaChina 上传代码比较麻烦,如果有什么问题或者添加什么功能,欢迎大家去我简书留言http://www.jianshu.com/p/497b33250ec1 喜欢的话可以关注我,...

    swift-ShadowView让你能够轻松在UIView上实现阴影效果

    ShadowView 让你能够轻松在UIView上实现阴影效果

    ios-为UIView添加未读消息红点.zip

    1. **快速添加徽标**:只需一行代码,就可以在任何UIView对象上添加红点徽标,如`yourView.ye_setBadge(1)`,这将在视图上显示一个带有数字1的红点。 2. **自定义徽标样式**:Yeebadge支持自定义徽标的颜色、大小、...

    显示任意 UIView的IOS控制器

    作者CooperRS,源码RMActionController,RMActionController 是一个 iOS 控制器,可像 UIActionSheet/ UIAlertController 那样,显示任意 UIView。

    ios中关于uiview

    在iOS开发中,`UIView`是构建用户界面的基础,几乎所有的可见元素都基于它。`UIView`不仅负责绘制和显示内容,还处理用户的交互事件。以下是对标题和描述中涉及的`UIView`知识点的详细解释: 1. **Bounds和Frame的...

    UIView的生命周期

    4. `viewWillAppear`方法在视图即将显示在屏幕上之前调用,此时视图的布局和动画设置已经完成。默认情况下,这个方法不执行任何操作,但开发者可以在这里执行一些准备显示的逻辑,如启动动画或者更新界面元素。 5. ...

    UIView 保存为图片

    首先,UIView是一个用于在屏幕上显示内容的基本类,它可以包含子视图,承载各种控件或自定义绘制的图形。当需要将UIView保存为图片时,通常会用到`renderInContext:`方法。这个方法可以将UIView的内容渲染到一个...

    UIView动画

    UIView 动画 UIView动画

    UIView转化为ImageDemo

    UIView是iOS中的一个基础视图类,它是所有UI组件(如UILabel、UIButton等)的基类,用于在屏幕上显示内容和处理用户交互。而UIImage则是用来表示静态图像的数据对象,它可以被用作UIImageView的源图片,或者在其他...

    自定义UITabBarController的badge的外观

    在`UITabBarItem` 上设置`badge`可以通过以下代码实现: ```swift let item = tabBarController?.tabBar.items?[index] item?.badgeValue = "1" // 设置badge值为1 ``` 然而,系统默认的`badge`样式可能无法满足...

    iOS实现UIView渐变效果

    在iOS开发中,UI设计往往追求独特且富有动态感的效果,其中UIView的渐变效果就是一个常用的视觉技巧。本文将深入探讨如何在iOS中实现UIView的渐变效果,并介绍一个已经封装好的解决方案,允许开发者轻松地在应用中...

    ios-UIView设置局部阴影,左右上下,左右底部阴影.zip

    在iOS开发中,为UIView添加局部阴影是一种常见的视觉优化手段,可以增强用户界面的层次感和立体感。本文将深入探讨如何实现标题所指的"ios-UIView设置局部阴影,左右上下,左右底部阴影"这一功能,同时参考提供的...

    UIView镂空

    其中,“UIView镂空”是一种特殊的视图处理技巧,用于在视图上创建透明区域,使得背景透过这些区域显示出来。这种效果通常用于创建如导航栏、按钮等UI元素的独特视觉效果,或者在某个视图上进行局部透明化处理。 ...

    UIButton+Badge.zip

    在iOS开发中,UIButton是苹果提供的一个基础控件,用于创建和处理用户交互的按钮。然而,有时我们可能需要在按钮上...这个压缩包是iOS开发中实用的代码片段,对于那些需要在按钮上显示未读标记或计数的场景非常有用。

    UIView AutoLayout.zip

    在iOS开发中,AutoLayout是苹果提供的一种强大的界面布局机制,它允许开发者在不同尺寸的屏幕上创建适应性强、响应式的用户界面。`UIView AutoLayout`是这个机制的一个扩展,为`UIView`类添加了分类,提供了更加简洁...

    UIView-Positioning, 在UIView对象中,基于简单属性的框架属性设置.zip

    UIView-Positioning, 在UIView对象中,基于简单属性的框架属性设置 uiview定位收费 UIView Positioning 是一个快速扩展,它提供简单的shorthand 方法,以方便的方式定义任何UIView对象的框架属性( 宽度,高度,x,y ...

Global site tag (gtag.js) - Google Analytics