zoukankan      html  css  js  c++  java
  • UITabbarItem imageview 实现点击有放大然后还原的动画效果

    在UITabBarController代理方法中添加动画,先通过KVC获取UIControl,然后在获取上面的UITabBarSwappableImageView,最后将动画添加到imageview的layer上。
    #pragma mark UITabBarControllerDelegate的代理方法
    - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
    {
        UIControl*tabBarButton = [viewController.tabBarItem valueForKey:@"view"];
        if (tabBarButton) {
            UIImageView * tabBarSwappableImageView = [tabBarButton valueForKey:@"info"];
            if ([tabBarSwappableImageView isKindOfClass:NSClassFromString(@"UITabBarSwappableImageView")]) {
                CAKeyframeAnimation * animation;
                animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
                animation.duration = 0.3;
                animation.removedOnCompletion = YES;
                animation.fillMode = kCAFillModeForwards;
                NSMutableArray *values = [NSMutableArray array];
                [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.9, 0.9, 1.0)]];
                [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.2, 1.2, 1.0)]];
                [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 1.0, 1.0)]];
                animation.values = values;
                [tabBarSwappableImageView.layer addAnimation:animation forKey:nil];
            }
        }
        return YES;
    }

  • 相关阅读:
    Linux 运维工程师的十个基本技能点
    如何在 Ubuntu 15.04 系统中安装 Logwatch
    线性表的 链式存储
    线性表的 顺序存储
    数据结构 基础知识
    struct和typedef struct
    虚拟内存
    Spring AOP
    常量池、perm(持久代)、方法区、栈
    String类型的对象,是保存在堆里还是在栈里呢?
  • 原文地址:https://www.cnblogs.com/weipeng168/p/10270409.html
Copyright © 2011-2022 走看看