iOS 给控件View添加角标BadgeValue
代码
创建视图Badge继承自UIView
.h
#import <UIKit/UIKit.h>
@interface Badge : UIView
/**
* 给视图添加1、2、3、4角标
*/
- (void)addBadgeValue:(NSString *)badgeValue;
/**
* 移除添加的角标
*/
- (void)removeBadgeValue;
@end
.m
#import "Badge.h"
@implementation Badge
- (void)addBadgeValue:(NSString *)badgeValue {
[self removeBadgeValue];
UITabBar *tabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 50)];
UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"" image:nil tag:0];
item.badgeValue = badgeValue;
NSArray *array = [[NSArray alloc] initWithObjects:item, nil];
tabBar.items = array;
//寻找
for (UIView *viewTab in tabBar.subviews) {
for (UIView *subview in viewTab.subviews) {
NSString *strClassName = [NSString stringWithUTF8String:object_getClassName(subview)];
if ([strClassName isEqualToString:@"UITabBarButtonBadge"] ||
[strClassName isEqualToString:@"_UIBadgeView"]) {
//从原视图上移除
[subview removeFromSuperview];
//
[self addSubview:subview];
subview.frame = CGRectMake(self.frame.size.width-10, 0,
subview.frame.size.width, subview.frame.size.height);
return;
}
}
}
}
- (void)removeBadgeValue
{
for (UIView *subview in self.subviews) {
NSString *strClassName = [NSString stringWithUTF8String:object_getClassName(subview)];
if ([strClassName isEqualToString:@"UITabBarButtonBadge"] ||
[strClassName isEqualToString:@"_UIBadgeView"]) {
[subview removeFromSuperview];
break;
}
}
}
使用代码
#import "ViewController.h"
#import "Badge.h"
@interface ViewController ()
@property (nonatomic,strong)Badge *bd;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//角标
_bd = [[Badge alloc]init];
NSString *str = @"2";
[_bd addBadgeValue:str];
_bd.backgroundColor = [UIColor cyanColor];
_bd.frame = CGRectMake(100, 50, 100, 100);
[self.view addSubview:_bd];
}
@end
效果图如下
iOS 给控件View添加角标BadgeValue相关推荐
- iOS:分页控件UIPageControl的使用
分页控件:UIPageControl 功能:通常搭配滚动视图一起使用,设置pagingEnabled=YES即可,UIScrollView会被分割成多个独立页面,用户的滚动体验则变成了页面翻转,一 ...
- Android探索之旅 | 为应用添加角标(Badge)
-- 作者 谢恩铭 转载请注明出处 内容简介 需求简介 Android角标起源 不错的Github项目 清除角标 小问题纠错 总结 1.需求简介 角标是什么意思呢? 看下图即可明了: 可以看到图中的乐 ...
- Android之在app图标添加角标
在做一些推送服务的时候,想在应用图标上添加未读消息,Android桌面角标的适配确实是非常坑爹的需求.原生系统根本就没有这个功能,国内很多厂家效仿ios都自己定义了该功能. 现在就为大家介绍部分机型添 ...
- android之在app图标添加角标,Android之在app图标添加角标
在做一些推送服务的时候,想在应用图标上添加未读消息,Android桌面角标的适配确实是非常坑爹的需求.原生系统根本就没有这个功能,国内很多厂家效仿ios都自己定义了该功能. 现在就为大家介绍部分机型添 ...
- asp.net panel 加html,ASP.NET 页面中动态增加的控件、添加事件
要求:页面上有一个Add按钮,每点击一次该按钮,页面上动态创建一个WebPartZone! 提醒:WebPartZone只能在OnInit或之前才能创建,否则报异常! 大家都知道,按钮的点击事件是在R ...
- ASP.NET开发:在用户控件中添加属性
在WEB开发中,可重用的代码我们可以把它写成一个通用模块供需要的地方来引用.本文就是介绍在ASP.NET的web编程时,如何在用户控件中添加属性,实现这种方法:举例说明详解. 在WEB开发中经常有一些 ...
- 在 GridView 控件中添加一列复选框51
简介 在前面的教程中 , 我们学习了如何为 GridView 控件添加一列 单选 按钮来选择一个特定的记录.当用户被限制最多只能从网格中选中一项时,一列单选按钮是一个非常恰当的用户界面.然而,有时我们 ...
- 控件(View)之TextSwitcher, Gallery, ImageSwitcher, GridView, ListView, ExpandableList【转】
在 Android 中使用各种控件(View) TextSwitcher - 文字转换器控件(改变文字时增加一些动画效果) Gallery - 缩略图浏览器控件 ImageSwitcher - 图片转 ...
- 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab
[索引页] [×××] 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spi ...
最新文章
- 首发 | 腾讯把需求和代码统一的内幕
- CCTF部分赛题分析
- Linux 服务器停止当前运行的程序,实验,代码
- matlab中Cci,【指标量化】超买超卖——CCI 顺势指标
- linux中时间命令详解
- Laravel 数据库实例教程 —— 使用DB门面操作数据库
- 实现MySQL的Replication
- php和js封装函数,介绍javascript-ecma中的几种封装函数
- 自己合成制作支付宝、微信、QQ三合一万能收款码
- 用动画做出一个正方体并且3d旋转,详解
- DHCP Relay 配置教程
- 最新Android框架排行榜。
- HTML/樱花爱心网页/
- 炔烃+叠氮“点击化学”(Click chemistry)试剂,你值得拥有
- BFS模版题----水缸灌水(c++)
- 最新IP数据库-基于国家省份城市县区和运营商-专业准确-每月发行
- 在vs2010使用EF出现CS0012: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义...
- B2C免运费1年记:京东拖垮小企业后再收费
- Python全栈(五)Web安全攻防之4.sqlmap性能优化和注入技术参数
- 如何找到压铸模具中真空阀的最佳位置?