zoukankan      html  css  js  c++  java
  • 在任意UIView上显示Badge(兼容IOS6)

    之前写过一篇文章在任意UIView上显示Badge,但IOS6上失败了,原来是苹果将Badge的类名改了,所以这里作下兼容,源码如下:

    - (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;
            }
        }
    }

    一个方法是显示Badge用的,一个是隐藏(移除)用的。

  • 相关阅读:
    MSSQL的基础应用
    SQLLite的使用
    C#反射调用其它DLL的委托事件 传值
    SQLServer 取 字段名称 类型 字段描述 等
    WCF跨域 客户端无法访问
    不同的数据库数据类型映射
    用人四策
    思考集体跳槽
    C/C++/Qt 统计运行时间
    CUDA项目属性设置
  • 原文地址:https://www.cnblogs.com/yjh4866/p/6253869.html
Copyright © 2011-2022 走看看