用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. 如何让自己的电脑发布ASP http://jingyan.baidu.com/article/19192ad853224ce53f570748.html

    怎样在WIN7系统下安装IIS | 浏览:122821 | 更新:2012-03-03 14:07 | 标签:windows7 1 2 3 4 5 6 7 分步阅读 在此根据多年的网站开发经验,把如何 ...

  2. 445port入侵具体解释

    445port入侵具体解释   关于"445port入侵"的内容445port入侵具体解释本站搜索很多其它关于"445port入侵"的内容 445port入侵, ...

  3. Codeforces Gym 100342D Problem D. Dinner Problem Dp+高精度

    Problem D. Dinner ProblemTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/1003 ...

  4. delphi 去掉TreeView水平滚动条

        使用API函数:声明 FUNCTION ulong ShowScrollBar(ulong hwnd,ulong wBar,ulong bShow) LIBRARY "user32. ...

  5. Apache Httpd通过mod_jk连接多个Tomcat

    一个tomcat能够配置多个web apps,这是众所周知的.当更改了一个web app,想要又一次启动的时候.因为全部的web apps都是放在同一个tomcat下的,所以别的web apps也在重 ...

  6. 解决mac的日历问题:服务器响应一个错误

    出了一个问题好久,平时也不用这个同步不靠谱的日历.今晚花点时间解决了下. 参考Apple 官网日历的问题解答. 当出现如下情况时: 退出日历和提醒事项. 从 Apple () 菜单中选取“系统偏好设 ...

  7. 具体解释Android中AsyncTask的使用

    在Android中实现异步任务机制有两种方式,Handler和AsyncTask. Handler模式须要为每个任务创建一个新的线程,任务完毕后通过Handler实例向UI线程发送消息,完毕界面的更新 ...

  8. Gradient Boost Decision Tree(&Treelink)

    http://www.cnblogs.com/joneswood/archive/2012/03/04/2379615.html 1.      什么是Treelink Treelink是阿里集团内部 ...

  9. Jquery解析Json字符串,并且动态生成数据表格Table

    //ajax获得后台传来的json字符串 $.post("UserInfo.ashx", function (data) { //假设data="{T1:[{User_I ...

  10. TCP/IP协议原理与应用笔记19:IP分组的交付和路由选择

    1. 引言: (1)互联网结构: 信息:IP分组(直接广播地址(Directed Broadcast Address),其指定了在一个特定网络中的"所有主机".) 节点:路由器.主 ...