- 發(fā)了一篇oc版的相同功能谦趣,順便追加一個swift的
//----------------------------------------------------
// 當點擊tabBar的時候,自動執(zhí)行該代理方法(不需要手動設(shè)置代理)
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
// 使用枚舉遍歷,判斷選中的tabBarItem等于數(shù)組中的第幾個
for (k,v) in (tabBar.items?.enumerated())! {
if v == item {
// 打印選中的iteme下標
print(k)
// 將下標傳入動畫方法
animationWithIndex(index: k)
}
}
}
//----------------------------------------------------
// 動畫方法
func animationWithIndex(index:Int){
// 不知為何,無法設(shè)置數(shù)組類型為UITabBarButton??????所以設(shè)置成了Any
var tabbarbuttonArray:[Any] = [Any]()
for tabBarBtn in self.tabBar.subviews {
if tabBarBtn.isKind(of: NSClassFromString("UITabBarButton")!) {
tabbarbuttonArray.append(tabBarBtn)
}
}
//----------------------------------------------------
let pulse = CABasicAnimation(keyPath: "transform.scale")
pulse.timingFunction = CAMediaTimingFunction(name:kCAMediaTimingFunctionEaseInEaseOut)
pulse.duration = 0.08
pulse.repeatCount = 1
pulse.autoreverses = true
pulse.fromValue = 0.7
pulse.toValue = 1.3
// 給tabBarButton添加動畫效果
let tabBarLayer = (tabbarbuttonArray[index] as AnyObject).layer
tabBarLayer?.add(pulse, forKey: nil)
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者