使用BBBadgeBarButtonItem它在swift 1.2中运行良好,在转换为2.0后它无法正常工作

时间:2015-12-08 06:57:28

标签: swift badge

嗨嗨我目前正在研究swift 2.0 BadgeBarButtonItem在swift 1.2中工作得很好,但在2.0 ViewController第一次加载时它显示正方形,然后第二次显示为圆形。

我从控制器viewDidLoad()

调用以下方法
 func createBadgeButton(customButton: UIButton)  -> BBBadgeBarButtonItem {

    var barButton: BBBadgeBarButtonItem?

    customButton.setImage(UIImage(named: "nav_cart.png"), forState: UIControlState.Normal)

    barButton = BBBadgeBarButtonItem(customView: customButton)

    var cartBadgeNumber: Int = 12

    barButton!.badgeValue = String(cartBadgeNumber)
    barButton!.badgeOriginX = 22
    barButton!.badgeOriginY = -7
    barButton!.badgeFont = UIFont(name: "HelveticaNeue-Bold", size: 11)
    barButton!.badgeMinSize = 6.0
    barButton!.badgeBGColor = UIColor.brownColor()
    barButton!.badgeTextColor = UIColor.whiteColor()
    barButton?.shouldAnimateBadge = true
    barButton!.shouldHideBadgeAtZero = true

    return barButton!

}

1 个答案:

答案 0 :(得分:3)

有一种方法可以处理它,实际上我们需要做的是再次将值更新为self。所以,我编辑了[self updateBadgeFrame]; 的库,并将以下行添加到setBadgeValue()函数中。它对我有用。

def all_dicts(d):
    yield d
    for v in d.values():
        if isinstance(v, dict):
            yield from all_dicts(v)

data = dict(foo=12, bar=dict(dd=12), ex=dict(a=dict(b=dict(v=12))))

for d in all_dicts(data):
     for k, v in d.items():
         if v == 12:
             d[k] = 33