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文档写出来的动画效果,写 ...
随机推荐
- HDOJ题目分类
模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 104 ...
- ORACLE 表空间扩展方法
ORACLE 表空间扩展方法 环境: linux系统 工具:PL/SQL DEVELOPER 第一步:查看表空间的名字及文件所在位置: select tablespace_name, file_id, ...
- MapReduce原理2
MapReduce的shuffle机制 1.概述 mapreduce中,map阶段处理的数据如何传递给reduce阶段,是mapreduce框架中最关键的一个流程,这个流程就叫shuffle: shu ...
- python 实现远端ftp文件上传下载
python 实现ftp上传下载 * 脚本需要传入两个参数,参数1为需要从远端ftp站点下载文件名称,参数2为已知需要下载的文件md5值,文件下载完成后会自动进行md5值校验 * 运行示例 [root ...
- P1203 [USACO1.1]坏掉的项链Broken Necklace
P1203 [USACO1.1]坏掉的项链Broken Necklace不错的断环为链的模拟题,开成三倍,有很多细节要考虑,比如总长度要<=n,开头第一个是w等等. #include<bi ...
- 001.Rsync简介及使用
一 基础知识 1.1 简介 Rsync是Linux系统中的数据镜像备份工具,通过rsync可以将本地系统数据通过网络备份到任何远程主机上.rysnc不仅仅能对不同位置的文件和目录进行同步,还可以差异计 ...
- BZOJ2888 : 资源运输
显然资源集合处就是树的重心,这题需要动态维护树的重心. 每个连通块以重心为根,用link-cut tree维护每个点的子树大小以及子树内所有点到它的距离和. 合并两个连通块时,考虑启发式合并,暴力往大 ...
- Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2)
Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2) #include <bits/stdc++ ...
- spring data jpa在使用PostgreSQL表名大小写的问题解决
国内的文章看了一遍,其实没找到根本问题解决方法,下面将列举这一系列的问题解决方法: 1.在配置文件增加如下配置: spring.jpa.hibernate.naming.physical-strate ...
- leetcode第一刷_Unique Binary Search Trees
这道题事实上跟二叉搜索树没有什么关系,给定n个节点,让你求有多少棵二叉树也是全然一样的做法.思想是什么呢,给定一个节点数x.求f(x),f(x)跟什么有关系呢,当然是跟他的左右子树都有关系.所以能够利 ...