我想在标签栏上设置徽章计数,例如Bouncing Animation。有没有人用本机UITabBarController实现它。我没有使用任何第三方类在我的项目中添加UITabBarController。
答案 0 :(得分:3)
在我与你分享代码之前,我会做一些这样的事情 首先,我创建了两个函数 第一个是:
func loopThrowViews(view:UIView){
for subview in (view.subviews){
let type = String(describing: type(of: subview))
print(type)
if type == "_UIBadgeView" {
print("this is BadgeView")
animateView(view: subview)
}
else {
loopThrowViews(view:subview)
}
}
}
此函数获取视图并循环抛出其所有子视图,直到找到徽章View然后它调用animate方法这个
func animateView(view:UIView){
let shakeAnimation = CABasicAnimation(keyPath: "position")
shakeAnimation.duration = 0.05
shakeAnimation.repeatCount = 50
shakeAnimation.autoreverses = true
shakeAnimation.fromValue = NSValue(cgPoint: CGPoint(x:view.center.x - 10, y:view.center.y))
shakeAnimation.toValue = NSValue(cgPoint: CGPoint(x:view.center.x + 10, y:view.center.y))
view.layer.add(shakeAnimation, forKey: "position")
}
您可以使用自己的动画替换此方法中的代码
您需要的只是在想要为徽章设置动画时调用此方法
loopThrowViews(view: self.tabBarController!.tabBar)
结果将是这样的