Tabbar点击时候超炫小动画

废话就不多说了直接上效果图,这是我公司项目中加的动画,自己可以适当的加以修改称自己想要的

效果

1.gif

点击下面的按钮时候是不是有动画 可能这个Gif动画有延迟 效果不明显 下面上代码。。

代码

// 系统方法
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    
    NSInteger index = [self.tabBar.items indexOfObject:item];
     // indexFlag 可以注释
    if (self.indexFlag != index) {
        [self animationWithIndex:index];
    }
    
}
// 动画
- (void)animationWithIndex:(NSInteger) index {
    NSMutableArray * tabbarbuttonArray = [NSMutableArray array];
    for (UIView *tabBarButton in self.tabBar.subviews) {
        if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) {
            [tabbarbuttonArray addObject:tabBarButton];
        }
    }
    CABasicAnimation*pulse = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
    pulse.timingFunction= [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    pulse.duration = 0.08;
    pulse.repeatCount= 1;
    pulse.autoreverses= YES;
    pulse.fromValue= [NSNumber numberWithFloat:0.7];
    pulse.toValue= [NSNumber numberWithFloat:1.3];
    [[tabbarbuttonArray[index] layer]
     addAnimation:pulse forKey:nil];
    
    self.indexFlag = index;
    
}

// swift版本
class MainTabBar: UITabBarController {

var indexFlag = 0

override func viewDidLoad() {
super.viewDidLoad()
}

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
if let index = tabBar.items?.index(of: item) {
if indexFlag != index {
animationWithIndex(index: index)
}
}
}

func animationWithIndex(index: Int) {
var arr = UIView
for tabBarButton in tabBar.subviews {
if tabBarButton.isKind(of: NSClassFromString("UITabBarButton")!) {
arr.append(tabBarButton)
}
}
let pulse = CABasicAnimation(keyPath: "transform.scale")
pulse.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
pulse.duration = 0.08
pulse.repeatCount = 1
pulse.autoreverses = true
pulse.fromValue = NSNumber(value: 0.7)
pulse.toValue = NSNumber(value: 1.3)
arr[index].layer.add(pulse, forKey: nil)

indexFlag = index
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}

推荐阅读更多精彩内容

  • 对UITabBarController上TabBar按钮动画详细介绍-->>保证你有意外收获,如有问题欢迎指点。。...
    MrBrave丶彬彬阅读 2,600评论 30 24
  • 对UITabBarController上TabBar按钮动画详细介绍swift版本-->>保证你有意外收获,如有问...
    MrBrave丶彬彬阅读 1,181评论 1 7
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 135,939评论 17 578
  • 今天的践行都是比较碎片化的! 琪琪跟文文从小都是非常爱画画爱涂鸦的,只要给他们画笔画纸真的她们一天可以搞定一本, ...
    Canna20170324阅读 19评论 0 0
  • 以前爸妈的年代囤货是因为物资短缺,计划经济,每逢过年就如同现在的双十一,现在的人也喜欢囤货,因为降价和打折,这难道...
    炫光行阅读 30评论 0 0