博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIView 动画
阅读量:6802 次
发布时间:2019-06-26

本文共 2618 字,大约阅读时间需要 8 分钟。

1、UIView 动画

  • 核心动画 和 UIView 动画 的区别:
    • 核心动画一切都是假象,并不会真实的改变图层的属性值,如果以后做动画的时候,不需要与用户交互,通常用核心动画(转场)。
    • UIView 动画必须通过修改属性的真实值,才有动画效果。
  • 1.1 block 方式

    • 设置控件位置、尺寸、透明度等的代码,放在 animateWithDuration: block 中,将自动以动画的方式改变。
    // 开始动画,动画持续时间 2 秒[UIView animateWithDuration:1.0 animations:^{    // 设置动画结束后的效果值    // 改变控件的位置和尺寸,改变后的位置或大小    self.redView.frame = CGRectMake(150, 50, 50, 50);} completion:^(BOOL finished) {    // 动画完成后的操作    // 开始一个新的动画    [UIView animateWithDuration:1.0 animations:^{        // 改变控件的位置和尺寸,改变后的位置或大小        self.redView.frame = CGRectMake(50, 150, 80, 80);    }];}];
    • 效果

      1213778-20180814223017895-514049910.gif

    • 弹簧效果的动画
    [UIView animateWithDuration:1.0 delay:0 usingSpringWithDamping:0.2 initialSpringVelocity:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{    // SpringWithDamping: 弹性系数,越小弹簧效果越明显    self.redView.frame = CGRectMake(150, 50, 50, 50);} completion:nil];
    • 效果
      1213778-20180814223028102-127275899.gif
  • 1.2 动画块方式

    • 设置控件位置、尺寸、透明度等的代码,放在 beginAnimations: 和 commitAnimations 之间,将自动以动画的方式改变。
    // 开始一个动画块[UIView beginAnimations:nil context:nil];// 动画设置// 设置动画时间[UIView setAnimationDuration:1.0];                                      // default = 0.2// 设置延时[UIView setAnimationDelay:0.0];                                         // 设置指定的时间后开始执行动画,default = 0.0// 设置动画执行节奏/*UIViewAnimationCurveEaseInOut,         // slow at beginning and end  开始和结束慢速,默认UIViewAnimationCurveEaseIn,            // slow at beginning          开始慢速UIViewAnimationCurveEaseOut,           // slow at end                结束慢速UIViewAnimationCurveLinear             //                            匀速*/[UIView setAnimationCurve:UIViewAnimationCurveLinear];// 设置重复次数[UIView setAnimationRepeatCount:MAXFLOAT];                              // default = 0.0.  May be fractional// 设置是否自动返回,以动画的方式返回[UIView setAnimationRepeatAutoreverses:YES];                            // default = NO. used if repeat count is non-zero// 设置是否从当前状态开始动画[UIView setAnimationBeginsFromCurrentState:YES];                        // default = NO// 设置代理[UIView setAnimationDelegate:self];                                     // default = nil// 设置动画开始时执行的代理方法,自定义方法[UIView setAnimationWillStartSelector:@selector(startAnimations)];      // default = NULL// 设置动画结束时执行的代理方法,自定义方法[UIView setAnimationDidStopSelector:@selector(stopAnimations)];         // default = NULL// 动画之行后效果值// 设置透明度,改变后的透明度self.redView.alpha = 1.0;// 改变控件的位置和尺寸,改变后的位置或大小self.redView.frame = CGRectMake(150, 150, 80, 80);// 结束一个动画块[UIView commitAnimations];// 动画开始时执行的代理方法,自定义方法- (void)startAnimations {    NSLog(@"startAnimations");}// 动画结束时执行的代理方法,自定义方法- (void)stopAnimations {    NSLog(@"stopAnimations");}
    • 效果
      1213778-20180814223040308-653785542.gif
  • 1.3 形变属性方式

    • 具体讲解见

转载于:https://www.cnblogs.com/CH520/p/9478440.html

你可能感兴趣的文章
图片垂直居中,兼容ie6
查看>>
iOS--资料--开源项目及库
查看>>
MBR(Master Boot Record)主引导记录分析
查看>>
词汇小助手V1.1——引入自动翻译和在线词典功能
查看>>
委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件
查看>>
国债期货下跌意味着什么
查看>>
提高rails new时bundle install的速度方法
查看>>
HAOI2006受欢迎的牛
查看>>
抽象类的应用——汽车租赁系统
查看>>
算法67-----环绕字符串中唯一的子字符串【动态规划】
查看>>
问题 G: 心急的C小加
查看>>
gdb查死循环方法
查看>>
购物单
查看>>
再次改进日志类 --!
查看>>
springmvc 实现动态头像上传
查看>>
CF992B Nastya Studies Informatics 数学(因子) 暴力求解 第三道
查看>>
BeagleBone Black开机启动和vnc图形界面
查看>>
unix环境高级编程-进程环境
查看>>
vsftpd配置文件详解 ---配置解说
查看>>
HDU 2196 Computer 树形DP
查看>>