美文网首页
TabBar上的数量展示

TabBar上的数量展示

作者: 微凉初夏 | 来源:发表于2019-10-08 16:16 被阅读0次

    一些TabBar的按钮需要显示相应的数量,如:消息

    如下扩展可以解决等分的系统TabBar的数量显示问题
    extension UITabBar {
    
    static let badgeTag: Int = 999
    static var badgeSize: CGSize = CGSize(width: 20, height: 20)
    static var tabbarItemNum: Int = 4 // tabbar item 的数目
    static var badgePercentX: CGFloat = 0.6
    static var badgePercentY: CGFloat = 0.1
    
    /// index:tabbar的位置标记
    public func showBadge(on index: Int, _ text: String) {
        self.removeBadge(index)
        
        let percentX: CGFloat = (CGFloat(index) + UITabBar.badgePercentX) / CGFloat(UITabBar.tabbarItemNum)
        let centerX: CGFloat = percentX * self.bounds.width
        let centerY: CGFloat = UITabBar.badgePercentY * self.bounds.height
        let center: CGPoint = CGPoint(x: centerX, y: centerY)
        let badge = EBadgeView()
        badge.center = center
        badge.frame.size = UITabBar.badgeSize
        badge.text = text
        self.addSubview(badge)
        self.bringSubviewToFront(badge)
    }
    
    public func hiddenBadge(_ index: Int) {
        self.removeBadge(index)
    }
    
    public func removeBadge(_ index: Int) {
        for view in subviews {
            if view.tag == UITabBar.badgeTag + index {
                view.removeFromSuperview()
            }
        }
    }
    
    }

    相关文章

      网友评论

          本文标题:TabBar上的数量展示

          本文链接:https://www.haomeiwen.com/subject/pveoectx.html