UIKit层面的动画

1.UIKit层面的动画
预备:动画 — 帧动画
每一帧是一张静态的图片,1秒钟24帧时,人眼就已经无法感受到图片的切换过程,于是有动画的连续

1.1UIImage

1.2UIImageView
//    [UIView animateWithDuration:2 animations:^{
//        //动画结束时的状态
//        self.imageView.center = endCenter;
//    }];

/*
 参数
 1.动画持续时间
 2.等待时间, 多久后开始运行动画
 3.动画的选项 (匀速 变速 重复)
 4.Block中是动画结束时视图的状态
 5.Block在动画结束时调用
 */
[UIView animateWithDuration:2 delay:3 options:UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionRepeat animations:^{
    self.imageView.center = endCenter;
    self.imageView.transform = CGAffineTransformMakeRotation(M_PI);
} completion:^(BOOL finished) {
    NSLog(@"动画完成了");
}];

//转场动画
//options 选Transition
[UIView transitionWithView:self.imageView duration:1 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
self.imageView.image = [UIImage imageNamed:@”Welcome_3.0_3.jpg”];
} completion:nil];

1.3NSTimer定时器
   创建定时器: 【 NSTimer  scheduledxxx 】创建定时器时就自动启动
     销毁定时器:【NSTimer invalidate】
    alpha、frame、center

1.4UIView
    系统为UIView提供的专门用于控制视图实现动画的方法,这些方法是以类方法出现的,方法名开头为animate。。。
    核心思想:
        在动画前设置好要修改的视图的起始状态
        在方法内,说明动画结束时视图的状态

        不需要关注中间的变化过程,只需说明视图的动画结束时什么样,系统就会为这个过程自动添加动画 

2.Core Animation层面的动画

2.1 CALayer 层(显示的基础)
    UIView  核心显示功能就是依靠CALayer实现的
    UIView和CALayer的关系:
    1)UIView的显示能力是依赖底层的CALayer实现的,每一个UIView都包含了一个CALayer对象,修改了CALayer,会影响表现出来的UIView的外观
    2)UIView与CALayer最大的不同在于,layer是不能够响应事件的,UIView由于继承了UIResponder,所以还能够响应用户事件

        1》如何获取UIView底层的那个CALayer对象呢?
            通过  .layer 属性就能拿到底层的层对象

        2》可以使用CALayer做哪些操作?
            a)修改系统已有的UIView的layer

                常用的属性:
                    backgroundColor
                    shadowxxxx
                    borderWidth
                    boradColor
                    cornerRadius
                    transform  (  CATransform3D类型  )

                    与尺寸位置相关的三个重要 属性
                    bounds  大小
                    position  位置(点是父视图坐标系的点)
                    anchorPoint  锚点
                        锚点决定了层中的哪个点出现在position所指示的父层的位置上

            b)创建新的Layer  使用类方法  layer
                图片 CALayer
                    给contents属性赋  CGImageRef类型
                文字 CATextLayer
                    给string属性赋字符串即可

                图形 CAShapeLayer
                    给path属性赋CGPath对象即可

CALayer的很多属性都有 隐式动画,在修改该属性时,会自动出现动画效果,可以通过查看头文件中,属性上面出现 animatable这样的说明时,意味可以有隐式动画


2.2 CAAnimation动画
    CA的动画,只能施加在CALayer上
    CA动画与UIView动画最大的一个区别:
        CA动画是假的,视图看着好像位置改变了,但其实没有变
        UIView动画中,由于明确的设定了动画结束时视图的状态,所以,视图的数据会随着动画的结束而真的被改变

        1》CAAnimation的子类之一:CABasicAnimation
            基础动画,设置动画的起始和重点值即可
            一定要设置keyPath属性,以此说明动画要修改的属性是哪个


        2》CAAnimation的子类之二:CAKeyFrameAnimation

            关键帧动画,可以定制动画过程中的细节,所以可以通过values属性记录中间变化的每一个细节,可以认为基础动画就是只有两个关键帧的动画,另外,关键帧动画最重要的效果就是 可以自定义动画路径,通过path属性记录

        3》CAAnimation的子类之二:CAKeyFrameAnimation
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值