● 每一个UIView内部都默认关联着一个CALayer,我们可用称这个Layer为Root Layer(根 层)
● 所有的非Root Layer,也就是手动创建的CALayer对象,都存在着隐式动画
● 什么是隐式动画?
➢ 当对非Root Layer的部分属性进行修改时,默认会自动产生一些动画效果
➢ 而这些属性称为Animatable Properties(可动画属性)
●列举几个常见的Animatable Properties:

➢ bounds:用于设置CALayer的宽度和高度。修改这个属性会产生缩放动画

➢ backgroundColor:用于设置CALayer的背景色。修改这个属性会产生背景色的渐变动画

➢ position:用于设置CALayer的位置。修改这个属性会产生平移动画

隐式动画

● 可以通过动画事务(CATransaction)关闭默认的隐式动画效果

[CATransaction begin];
[CATransaction setDisableActions:YES];
self.myview.layer.position = CGPointMake(10, 10);
[CATransaction commit];

@interface NJViewController ()

@property (nonatomic, strong) CALayer *layer;
@end @implementation NJViewController - (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib. CALayer *layer = [CALayer layer];
layer.backgroundColor = [UIColor redColor].CGColor;
layer.bounds = CGRectMake(, , , );
layer.anchorPoint = CGPointZero;
[self.view.layer addSublayer:layer];
self.layer = layer;
} - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// 关闭隐式动画
// [CATransaction begin];
// [CATransaction setDisableActions:YES]; // 隐式动画
self.layer.backgroundColor = [UIColor greenColor].CGColor;
// self.layer.bounds = CGRectMake(0, 0, 200, 200);
self.layer.position = CGPointMake(, );
// self.layer.position // 如何查看CALayer的某个属性是否支持隐式动画, 查看头文件是否有 Animatable // [CATransaction commit]; }

IOS 隐式动画(非Root Layer)的更多相关文章

  1. iOS边练边学--CALayer,非根层隐式动画,钟表练习

    一.CALayer UIView之所以能显示在屏幕上,完全是因为他内部的一个图层 在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性 ...

  2. iOS:CALayer的隐式动画的详解

    CALayer的隐式动画属性: •每一个UIView内部都默认关联着一个CALayer,称这个Layer为Root Layer.所有的非Root Layer都存在着隐式动画,隐式动画的默认时长为1/4 ...

  3. [iOS Animation]-CALayer 隐式动画

    隐式动画 按照我的意思去做,而不是我说的. -- 埃德娜,辛普森 我们在第一部分讨论了Core Animation除了动画之外可以做到的任何事情.但是动画是Core Animation库一个非常显著的 ...

  4. iOS动画学习 -隐式动画

    事务 Core Animation基于一个假设,说屏幕上的任何东西都可以(或者可能)做动画.你并不需要在Core Animation中手动打开动画,但是你需要明确地关闭它,否则它会一直存在. 当你改变 ...

  5. ios开发核心动画三:隐式动画与时钟效果

    一:隐式动画 #import "ViewController.h" @interface ViewController () /** <#注释#> */ @proper ...

  6. 非RootLayer的隐式动画

    非RootLayer都有隐式动画,默认0.25秒. // 1.开启 [CATransaction begin]; // 2.设置关闭 YES-关闭:NO-开启 [CATransaction setDi ...

  7. IOS第18天(3,CALayer隐式动画)

    ******隐式动画(手指拖拽Layer) #import "HMViewController.h" @interface HMViewController () @propert ...

  8. iOS中的隐式动画

    隐式动画就是指  在 非 人为在代码中 定义动画  而系统却默认  自带   的动画  叫做隐式动画. 比如  改变 图层  的颜色  位置  和   透明度  的时候    都会  产生附带的渐变的 ...

  9. OC - 22.隐式动画

    简介 每个UI控件,默认自动创建一个图层(根图层),即每个UI控件对应于至少一个图层 每一个UIView内部都默认关联着一个CALayer,我们可用称这个Layer为Root Layer(根层)   ...

随机推荐

  1. 开源库SRT编译指南

    SRT(Secure,Reliable,Transport)是Haivision公司开发的一套开源媒体传输协议,用于在不稳定的网络环境下,优化媒体数据的传输性能.  SRT的码流加密基于开源库open ...

  2. 41.QT-多线程与界面之间交互总结

    1. 线程与界面组件需要注意的地方 在QThread线程中不能直接创建QWidget之类的界面组件. 因为在QT中,所有界面组件相关的操作都必须在主线程中(也就是GUI thread) 所以, QTh ...

  3. 黑马MySQL数据库学习day03 级联 多表查询 连接和子查询 表约束

    /* 存在外键的表 删表限制: 1.先删除从表,再删除主表.(不能直接删除主表,主表被从表引用,尽管实际可能还没有记录引用) 建表限制: 1.必须先建主表,再建从表(没有主表,从表无法建立外键关系) ...

  4. Java基础笔记(七)—— 成员变量、静态变量、局部变量

    public class Test { int c; //成员变量(实例变量) static int s1; //静态变量(类变量)(全局变量) public static void main(Str ...

  5. [题解](排列组合)luogu_P3223排队

    把老师和女生插到男生中间,先对男生排列:A(n,n),然后把老师插到n+1个空里:A(n+1,2),然后放入女生:A(n+3,m) 但是少考虑了老师之间由1个女生分开的情况,所以把三个人看作一个整体, ...

  6. @GeneratorValue与@GenericGenerator注解使用心得

    参考博主们的 http://blog.csdn.net/tianxiezuomaikong/article/details/64930151

  7. 读取文件名称cmd命令

    操作步骤: 1.进入命令提示符窗口 开始→运行,键入“CMD”,确定. 开始→程序→附件→C:\命令提示符 2.进入驱动器d: C:\Documents and Settings>d:(回车) ...

  8. 成功安装tesserocr

    首先按照官网的操作,出现了下面的错误. 错误描述: x86_64-linux-gnu-gcc: error trying to exec 'cc1plus': execvp: 没有那个文件或目录 er ...

  9. jdbc 开启事务

    package com.itheima.tx; import java.sql.Connection; import java.sql.PreparedStatement; import java.s ...

  10. NewStar 信息分发系统设计

    目录 NewStar 信息分发系统设计 我想要怎么做 系统流程图 解释和初步的模板展示 NewStar 信息分发系统设计 我们在全世界发布网站本质就是向全世界分发我们的信息给客户/潜在客户,然后希望促 ...