Tabbar点击时候超炫小动画

作者: MrBrave丶彬彬 | 来源:发表于2016-09-20 14:18 被阅读1454次

对UITabBarController上TabBar按钮动画详细介绍-->>保证你有意外收获,如有问题欢迎指点。。


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


1.gif

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


- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    
    NSInteger index = [self.tabBar.items indexOfObject:item];
    
    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;
    
}

未完待续。。。如果有什么问题可以+QQ1107385382询问,如给你解决了问题-->>请好评

相关文章

网友评论

  • 西叶lv:不太明白这里,for (UIView *tabBarButton in self.tabBar.subviews),这个是取item么???
    MrBrave丶彬彬:@郝嘉律 对呀 self.tabBar.subviews你打印下数据
  • 少年_如他:mark 谢谢
    MrBrave丶彬彬:@少年_如他 谢谢支持
  • xiAo__Ju:确实不错
    ```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()
    }
    }
    ```
    xiAo__Ju:@MrBrave丶彬彬 http://wiki.jikexueyuan.com/project/swift/chapter2/01_The_Basics.html我是先看的这个文档,应该是swift2.2,看了一个周,然后就开始做项目,慢慢就会了
    MrBrave丶彬彬:@xiAo__Ju 可以。有没有什么好的学习swift的资料,推荐下
  • 从此你不再颠沛流离:你的tabbar自定义的?
  • 从此你不再颠沛流离:- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 这个方法是点击item调用的么?
    从此你不再颠沛流离:@MrBrave丶彬彬 en恩
    MrBrave丶彬彬:@从此你不再颠沛流离 系统的方法
  • yunjinghn:indexFlag 这个属性要自己定义,现在已经可以出现动画了,谢谢楼主。给好评!
  • yunjinghn:indexFlag 是什么?
    yunjinghn:@yunjinghn 原来这个属性要自己定义,现在已经可以出现动画了,谢谢楼主。给好评!
    MrBrave丶彬彬:@yunjinghn 记录的,可以不要。你把那个注视了。9没关系
  • 某非著名程序员:这个可以的
    MrBrave丶彬彬:@260d120058f7 谢谢
  • 82d4ee28ea19:请问源码地址在哪里?
    MrBrave丶彬彬:@MisterXia 那就是所有代码了。。这个是我项目里面的。。没有源码给的。。
  • 达摩君:用到了
  • 4644cf34fbb7:可以
    MrBrave丶彬彬:@我家宝宝最可爱 谢谢
  • 啊世ka:应该是,谢谢了
  • 啊世ka:为什么我在第一个UiTableViewCell 里面的UITextFile 里面填东西 然后其他cell 也会出现我填写的
    MrBrave丶彬彬:@啊世ka 你的重用有问题吧
  • 9007fcd64655:不能变大 ,差评
    MrBrave丶彬彬:@9007fcd64655 还有是可以变大的
    MrBrave丶彬彬:@9007fcd64655 这个需要自己去研究,动画自己设置的
  • Yokooll:不错
    MrBrave丶彬彬:@Yokooll 谢谢。。

本文标题:Tabbar点击时候超炫小动画

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