在任意UIView上显示Badge(兼容IOS6)
来源:互联网 发布:php 流媒体播放 编辑:程序博客网 时间:2024/04/29 23:00
之前写过一篇文章在任意UIView上显示Badge,但IOS6上失败了,原来是苹果将Badge的类名改了,所以这里作下兼容,源码如下:
[plain]
- (UIView *)showBadgeValue:(NSString *)strBadgeValue
{
UITabBar *tabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"" image:nil tag:0];
item.badgeValue = strBadgeValue;
NSArray *array = [[NSArray alloc] initWithObjects:item, nil];
tabBar.items = array;
[item release];
[array release];
//寻找
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-subview.frame.size.width, 0,
subview.frame.size.width, subview.frame.size.height);
[tabBar release];
return subview;
}
}
}
[tabBar release];
return nil;
}
- (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;
}
}
}
[plain]
- (UIView *)showBadgeValue:(NSString *)strBadgeValue
{
UITabBar *tabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"" image:nil tag:0];
item.badgeValue = strBadgeValue;
NSArray *array = [[NSArray alloc] initWithObjects:item, nil];
tabBar.items = array;
[item release];
[array release];
//寻找
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-subview.frame.size.width, 0,
subview.frame.size.width, subview.frame.size.height);
[tabBar release];
return subview;
}
}
}
[tabBar release];
return nil;
}
- (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;
}
}
}
- 在任意UIView上显示Badge(兼容IOS6)
- 在任意UIView上显示Badge(兼容IOS6)
- 在任意UIView上显示Badge(兼容IOS6)
- 在任意UIView上显示Badge
- 在任意UIView上显示Badge
- Badge在多种机型上显示
- 如何在tabBar上显示 提示小红点标记(badge)
- 在小米、三星等系统应用图标上显示badge
- [iOS6]如何在Xcode6设置UIView的圆角显示
- UIMenuController 在UIView 上的 显示
- 在各种小控件上添加Badge
- ios6上,tabbar不显示
- iOS判断UIView是否显示在屏幕上
- iOS判断UIView是否显示在屏幕上
- 在ListView 的Column Header上显示任意图片
- 使joomla在mainbody区域上显示任意模块
- 在屏幕上任意位置显示字符串 基于8086汇编
- ios6应用运行在ios7系统上
- 用Leiningen创建第一个Clojure工程三
- 七周七语言:Prolog Day 3
- 电脑分区知识
- SIFT 资料
- FLEX4 填充方式
- 在任意UIView上显示Badge(兼容IOS6)
- eclipse中使用Jena解析本体文件
- ashx验证注意的地方
- 坚持学习的四条建议
- 第3章:几何方面:点是否在圆内?
- html判断IE版本
- this指针
- WPA/RSN四次握手和PTK
- ASP.NET中的Form窗体的内容的画线画图形等问题