用pop动画简单实现弹窗的缩放和渐变,感觉这个动画常用,就写一下博客

pop动画是Facebook推出的动画引擎,请自行到GitHub上搜索下载拖拽导入xcode项目中。

更多pop动画使用和原理可网上搜索学习

本处只简单介绍代码开发使用,紧以弹窗效果为思路。

1. 控制器导入头文件 #import "POP.h"

2.创建弹窗透明黑色背景

  1. - (void)createBlackView {
  2. self.blackView                 = [[UIView alloc] initWithFrame:self.contentView.bounds];
  3. self.blackView.backgroundColor = [UIColor blackColor];
  4. self.blackView.alpha           = 0;
  5. [self addSubview:self.blackView];
  6. [UIView animateWithDuration:0.3f animations:^{
  7. self.blackView.alpha = 0.25f;
  8. }];
  9. }

3.创建白色上面的白色view,并加上所需的控件,给白色的messageView做pop动画效果,

代码如下

  1. // 执行动画 改变透明度
  2. POPBasicAnimation  *alpha = [POPBasicAnimation animationWithPropertyNamed:kPOPViewAlpha];
  3. alpha.toValue             = @(1.f);
  4. alpha.duration            = 0.3f;
  5. [self.messageView pop_addAnimation:alpha forKey:nil];
  6. // 缩放回弹
  7. POPSpringAnimation *scale = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerScaleXY];
  8. scale.fromValue           = [NSValue valueWithCGSize:CGSizeMake(1.75f, 1.75f)];
  9. scale.toValue             = [NSValue valueWithCGSize:CGSizeMake(1.f, 1.f)];
  10. scale.dynamicsTension     = 1000;
  11. scale.dynamicsMass        = 1.3;
  12. scale.dynamicsFriction    = 10.3;
  13. scale.springSpeed         = 20;
  14. scale.springBounciness    = 15.64;
  15. scale.delegate            = self;
  16. [self.messageView.layer pop_addAnimation:scale forKey:nil];

4.弹窗消失的思路代码

    1. - (void)removeViews {
    2. [UIView animateWithDuration:0.2f animations:^{
    3. self.blackView.alpha       = 0.f;
    4. self.messageView.alpha     = 0.f;
    5. self.messageView.transform = CGAffineTransformMakeScale(0.75f, 0.75f);
    6. } completion:^(BOOL finished) {
    7. [self removeFromSuperview];
    8. }];
    9. }

iOS动画——弹窗动画(pop动画)的更多相关文章

  1. iOS_SN_push/pop转场动画封装和一般动画封装

    封装类中的方法: #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface AnimationE ...

  2. iOS CATransition 自定义转场动画

    https://www.jianshu.com/p/39c051cfe7dd CATransition CATransition 是CAAnimation的子类(如下图所示),用于控制器和控制器之间的 ...

  3. 自定义UINavigationController push和pop动画

    http://segmentfault.com/q/1010000000143983 默认的UINavigationController push和pop的默认动画都是左右滑动推出,我的应用要求这种界 ...

  4. iOS核心动画高级技巧之核心动画(三)

    iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...

  5. FaceBook pop 动画开源框架使用教程说明

    https://github.com/facebook/pop Pop is an extensible animation engine for iOS and OS X. In addition ...

  6. iOS开发UI篇—核心动画(UIView封装动画)

    iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...

  7. iOS开发UI篇—核心动画(转场动画和组动画)

    转自:http://www.cnblogs.com/wendingding/p/3801454.html iOS开发UI篇—核心动画(转场动画和组动画) 一.转场动画简单介绍 CAAnimation的 ...

  8. iOS开发UI篇—核心动画(关键帧动画)

    转自:http://www.cnblogs.com/wendingding/p/3801330.html iOS开发UI篇—核心动画(关键帧动画) 一.简单介绍 是CApropertyAnimatio ...

  9. iOS开发UI篇—核心动画(基础动画)

    转自:http://www.cnblogs.com/wendingding/p/3801157.html 文顶顶 最怕你一生碌碌无为 还安慰自己平凡可贵 iOS开发UI篇—核心动画(基础动画) iOS ...

随机推荐

  1. UVa712 S-Trees

    // UVa712 S-Trees // Rujia Liu // 题意:给一棵满二叉树,每一层代表一个01变量,取0时往左走,取1时往右走.给出所有叶子的值,以及一些查询(即每个变量的值),求最后到 ...

  2. iOS 判断只有数字、小数点和减号

    #define NUMBERS @"0123456789.-" //数字 #define NUM @"0123456789" //字母 #define ALPH ...

  3. 微信开发模式(php)

    才開始学习微信开发模式和PHP,在此记录以供后阅. <?php /** * wechat php test */ //define your token define( "TOKEN& ...

  4. Codeforces Gym 100513I I. Sale in GameStore 暴力

    I. Sale in GameStore Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100513/p ...

  5. Java多线程模式(二)

    Guarded Suspension Pattern      该模式描述的是当一个线程在执行某个操作时,但由于其他资源还没有准备好,需要等待,那么就等待资源准备好才开始自己的操作.我们直接看代码例子 ...

  6. UNIX标准化及实现之POSIX标准必需头文件

    POSIX标准定义的必需头文件 头文件 说明 <dirent.h> 目录项 <fcntl.h> 文件控制 <fnmatch.h> 文件名匹配类型 <glob. ...

  7. 决策树算法实现(train+test,matlab) 转

    原文:http://www.zgxue.com/198/1985544.html 华电北风吹 天津大学认知计算与应用重点实验室 修改日期:2015/8/15 决策树是一种特别简单的机器学习分类算法.决 ...

  8. bash中的数值运算

    第一种,使用((表达式)): a=3 ((b=a+2)) echo $b 第二种使用let: let "c=$a+4" echo $c 第三种,使用expr表达式(注意空格不能少) ...

  9. Maven学习小结(七 生命周期[转])

    Maven2的阶段(生命周期)说明:Maven2拥有三套独立的生命周期,Maven的命令也是基于这些生命周期来说的.1.clean:清理先前构建的构件,又分为下面三个下阶段: a.pre-clean ...

  10. 微软数学库XNAMATH(DirectXMath)

    这篇文章只是对着MSDN文档的一些吐槽和总结记录,个人笔记之类的 运行库与头文件 老实说,这个数学库微软还是更像蛮频繁的,我这里有的最早版本是伴随DX9的,在这个头文件里面 最近在使用DXUT,顺便也 ...