Swift中给UIView添加Badge

extension UIView{
      //任意UIView添加badge
    func showBadgeValue(#strBadgeValue: String) -> Void{
       
        let tabBar = UITabBar(frame: CGRectMake(0, 0, 320, 50))
        let item = UITabBarItem(title: "", image: nil, tag: 0)
        item.badgeValue = strBadgeValue
        let array = [item]
       
        tabBar.items = array
        for viewTab in tabBar.subviews{
            for subview in viewTab.subviews{
                let strClassName = String(UTF8String: object_getClassName(subview))
                if strClassName == "UITabBarButtonBadge" || strClassName == "_UIBadgeView"{
                    let theSubView = subview as! UIView
                    theSubView.removeFromSuperview()
                    self.addSubview(theSubView)
                    theSubView.frame = CGRectMake(self.frame.size.width - theSubView.frame.size.width, 0, theSubView.frame.size.width, theSubView.frame.size.height)
                   
                }

            }
        }
    }
   
    //删除UIView的badge
    func removeBadge() -> Void{
        for subview in self.subviews{
            let strClassName = String(UTF8String: object_getClassName(subview))
            if strClassName == "UITabBarButtonBadge" || strClassName == "_UIBadgeView"{
                let theSubView = subview as! UIView
                theSubView.removeFromSuperview()
            }
        }
    }
}
原文地址:https://www.cnblogs.com/rambot/p/4777484.html