POP缩放动画
POP缩放动画

效果

源码
https://github.com/YouXianMing/Animations
//
// SpringScaleViewController.m
// Animations
//
// Created by YouXianMing on 16/6/3.
// Copyright © 2016年 YouXianMing. All rights reserved.
// #import "SpringScaleViewController.h"
#import "UIView+SetRect.h"
#import "UIFont+Fonts.h"
#import "GCD.h"
#import "POP.h" @interface SpringScaleViewController () @property (nonatomic, strong) UIView *scaleView; @end @implementation SpringScaleViewController - (void)setup { [super setup]; // Label
UILabel *label = [[UILabel alloc] init];
label.text = @"P P";
label.font = [UIFont HYQiHeiWithFontSize:];
[label sizeToFit];
label.center = self.contentView.middlePoint;
[self.contentView addSubview:label]; // Circle
self.scaleView = [[UIView alloc] initWithFrame:CGRectMake(, , , )];
self.scaleView.backgroundColor = [[UIColor colorWithRed:0.203 green:0.598 blue:0.859 alpha:] colorWithAlphaComponent:0.95f];
self.scaleView.layer.cornerRadius = self.scaleView.width / .f;
self.scaleView.center = self.contentView.middlePoint;
[self.contentView addSubview:self.scaleView]; // Start animation after 1 second.
[GCDQueue executeInMainQueue:^{ [self scaleAnimation]; } afterDelaySecs:.f];
} - (void)scaleAnimation { POPBasicAnimation *scaleAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewScaleXY]; scaleAnimation.name = @"scaleSmallAnimation";
scaleAnimation.delegate = self; scaleAnimation.duration = 0.15f;
scaleAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(1.25, 1.25)];\ [self.scaleView pop_addAnimation:scaleAnimation forKey:nil];
} - (void)pop_animationDidStop:(POPAnimation *)anim finished:(BOOL)finished { if ([anim.name isEqualToString:@"scaleSmallAnimation"]) { POPSpringAnimation *scaleAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewScaleXY]; scaleAnimation.name = @"SpringAnimation";
scaleAnimation.delegate = self; scaleAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(, )];
scaleAnimation.velocity = [NSValue valueWithCGPoint:CGPointMake(-, -)];
scaleAnimation.springBounciness = .f;
scaleAnimation.springSpeed = .f;
scaleAnimation.dynamicsTension = .f;
scaleAnimation.dynamicsFriction = .f;
scaleAnimation.dynamicsMass = .f; [self.scaleView pop_addAnimation:scaleAnimation forKey:nil]; } else if ([anim.name isEqualToString:@"SpringAnimation"]) { [self performSelector:@selector(scaleAnimation) withObject:nil afterDelay:];
}
} - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [[self class] cancelPreviousPerformRequestsWithTarget:self];
} @end
细节
1. 参数设置有技巧,可以参考如下所示(项目中的POPSpringParameterController):

2. 动画效果是通过组合两个动画而来的,要注意设置代理:

POP缩放动画的更多相关文章
- Android实现Layout缩放动画
最近看到Any.do的缩放效果很酷,看到一篇讲Layout缩放动画实现的文章,记录一下: http://edison-cool911.iteye.com/blog/704812
- 动画--问题追踪:ImageView执行缩放动画ScaleAnimation之后,图像显示不全的问题。
http://www.bkjia.com/Androidjc/929473.html: 问题追踪:ImageView执行缩放动画ScaleAnimation之后,图像显示不全的问题., 问题:我有一个 ...
- iOS开发笔记10:圆点缩放动画、强制更新、远程推送加语音提醒及UIView截屏
1.使用CAReplicatorLayer制作等待动画 CALayer+CABasicAnimation可以制作很多简单的动画效果,之前的博客中介绍的“两个动画”,一个是利用一张渐变色图片+CABas ...
- iOS利用Runtime自定义控制器POP手势动画
前言 苹果在iOS 7以后给导航控制器增加了一个Pop的手势,只要手指在屏幕边缘滑动,当前的控制器的视图就会跟随你的手指移动,当用户松手后,系统会判断手指拖动出来的大小来决定是否要执行控制器的Pop操 ...
- AndroidUI 视图动画-缩放动画效果 (ScaleAnimation)
放动画效果,可以使用ScaleAnimation: <Button android:id="@+id/btnScale2" android:layout_width=&quo ...
- AndroidTv Home界面实现原理(二)——Leanback 库的主页卡位缩放动画源码解析
先看个效果图: 上一篇中,我们留了问题,在 Tv Home 界面这种很常见聚焦卡位放大动画效果,我们这一篇就来看看 Leanback 库是怎么实现的. 如果要我们自己实现的话,思路应该不难,就是写个放 ...
- Android缩放动画
Android缩放动画 核心方法 public void startAnimation(Animation animation) 执行动画,参数可以是各种动画的对象,Animation的多态,也可以是 ...
- pop弹簧动画实现
POP是一个在iOS与OS X上通用的极具扩展性的动画引擎.它在基本的静态动画的基础上增加的弹簧动画与衰减动画,使之能创造出更真实更具物理性的交互动画.POP的API可以快速的与现有的ObjC代码集成 ...
- UI设计篇·入门篇·简单动画的实现,透明动画/旋转动画/移动动画/缩放动画,混合动画效果的实现,为动画设置监听事件,自定义动画的方法
基本的动画构成共有四种:透明动画/旋转动画/移动动画/缩放动画. 配置动画的方式有两种,一种是直接使用代码来配置动画效果,另一种是使用xml文档配置动画效果 相比而言,用xml文档写出来的动画效果,写 ...
随机推荐
- socket编程之select相关
FD_ZERO,FD_ISSET这些都是套节字结合操作宏 看看MSDN上的select函数, 这是在select io 模型中的核心,用来管理套节字IO的,避免出现无辜锁定. int se ...
- IntelliJ IDEA快捷键:Ctrl+空格
The Code Completion feature lets you quickly complete different kinds of statements in the code.For ...
- 【AtCoder】CADDi 2018
C - Product and GCD 题解 直接分解质因数,然后gcd每次多一个质因数均摊到每个\(N\)上的个数 代码 #include <bits/stdc++.h> #define ...
- Storm程序的并发机制(重点掌握)
概念 Workers (JVMs): 在一个物理节点上可以运行一个或多个独立的JVM 进程.一个Topology可以包含一个或多个worker(并行的跑在不同的物理机上), 所以worker proc ...
- hadoop日志数据分析开发步骤及代码
日志数据分析:1.背景1.1 hm论坛日志,数据分为两部分组成,原来是一个大文件,是56GB:以后每天生成一个文件,大约是150-200MB之间:1.2 日志格式是apache common日志格式: ...
- P3397 地毯
P3397 地毯 前缀和最开始接触是在日照夏令营,lca的一段子树中加或减一个数然后打标记,求前缀和000+10000-100000000111110000二维也一样,比如对子矩阵都加10+10000 ...
- 循序渐进学.Net Core Web Api开发系列【11】:依赖注入
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍如 ...
- ArduinoYun教程之Arduino环境与Linux环境的桥梁Bridge
ArduinoYun教程之Arduino环境与Linux环境的桥梁Bridge Arduino环境与Linux环境的桥梁——Bridge 在第一章中介绍Arduino Yun硬件的时候提到过,它上面有 ...
- 20172302『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结
一.结对对象 姓名:周亚杰 学号:20172302 担任角色:驾驶员(周亚杰) 伙伴第二周博客地址 二.本周内容 (一)继续编写上周未完成代码 1.本周继续编写代码,使代码支持分数类计算 2.相关过程 ...
- Codeforces Round #373 (Div. 2) A. Vitya in the Countryside 水题
A. Vitya in the Countryside 题目连接: http://codeforces.com/contest/719/problem/A Description Every summ ...