iOS Core Animation笔记--UIView和CALayer
来源:互联网 发布:软件测试转正工作总结 编辑:程序博客网 时间:2024/05/20 23:57
UIView
iOS中所有的视图均是从UIVIew派生的,UIVIew可以处理触摸事件、支持Core Graphics绘图、可以做仿射变换(例如旋转、缩放)、也可以做一些滑动或渐变的动画
CALayer
CALayer类似UIVIew,也还一些被层级关系树管理的块,CALayer(图层)可以包含图片、文字等内容,可以管理自己的子图层,也有一些方法和属性用来做动画和变换。
但是和UIView不同的是,CALayer不能响应事件,它不清楚响应链,即使它有一些判断点是否在自己的范围内,
UIView和CALayer
UIView的层级关系对应着一个平行的CALayer层级关系,每一个UIView有关联这一个CALayer的实例,视图的职责就是创建和管理这个图层(当子视图添加或删除的时候,他们关联的图层在对应的层级关系树中也会有相应的操作)以及处理触摸事件等,CALayer才是真正的用来做屏幕上的显示和动画,UIView仅是对它的封装,提供一些接口然我们可以简单的设置该视图对应的图层
之所以不用一个层级处理所有的事是为了职责分离
图层可以做的功能
(1)阴影、圆角、带颜色的边框
(2)3D变换
(3)非矩形的范围
(4)透明遮罩
(5)非线性的动画
使用CALayer的例子
下面的例子可一说明两点
(1)说明视图View的原点在左上角,而CALayer图层的原点在view的左上角,个人认为原因是将blueLayer添加到view中
(2)一个视图只有一个关联的图层(自动创建的),但是可以给它添加无数个图层,其实添加的图层是添加到关联的图层的图层树中
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(self.view.frame.size.width/2-100, self.view.frame.size.height/2-100, 200, 200)]; view.backgroundColor = [UIColor whiteColor]; [self.view addSubview:view]; //view中添加红色view UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(self.view.frame.size.width/2-50, self.view.frame.size.height/2-50, 100, 100)]; view1.backgroundColor = [UIColor redColor]; [self.view addSubview:view1]; //view中添加蓝色Layer CALayer *blueLayer = [CALayer layer]; //CGRectMake(0, 0, 100, 100)对应第一个图, // blueLayer.frame = CGRectMake(0, 0, 100, 100); //对应第二个图 blueLayer.frame = CGRectMake(0, 20, 100, 100); blueLayer.backgroundColor = [UIColor blueColor].CGColor; [view.layer addSublayer:blueLayer];
0 0
- iOS Core Animation笔记--UIView和CALayer
- ios CALayer Core Animation UIView动画封装
- UIView, CALayer,Core Animation
- iOS开发-CALayer/Core Animation/UIView动画封装
- iOS学习笔记59-UIView自带动画和核心动画(Core Animation)
- iPhone/iOS Core Animation开发总结(CALayer)
- iPhone/iOS Core Animation开发总结(CALayer)
- iPhone/iOS Core Animation开发总结(CALayer)
- iPhone/iOS Core Animation开发总结(CALayer)
- iPhone/iOS Core Animation开发总结(CALayer)
- iPhone/iOS Core Animation开发总结(CALayer)
- iPhone/iOS Core Animation开发总结(CALayer)
- iOS 之Core Animation中的CALayer
- IOS学习---CALayer 和UIView
- iOS的UIView和CALayer
- Core Animation CALayer动画
- Core Animation 之 CALayer
- iOS 动画Animation详解, UIView动画,CALayer动画
- 百度:地震姜常宏图片,求传播?!! http://t.qq.com/jiangchanghong2016
- FZU 1062 洗牌问题(打表找规律)
- js【知识点】
- bzoj 4596: [Shoi2016]黑暗前的幻想乡 (矩阵树定理+容斥原理)
- 双系统安装-UEFI启动的Ubuntu 16.04 + 原装Win 10 (XPS 13)
- iOS Core Animation笔记--UIView和CALayer
- Java多线程系列-生产者/消费者模型
- Java多线程系列-Queue、BlockingQueue以及利用BlockingQueue实现生产者/消费者模型
- python数据库随笔
- Project Euler Problem 543 Prime-Sum Numbers
- 生成删除约束语句 SQL语句
- GNOME的新夜灯功能旨在帮助你睡得更好
- 剑指Offer(7)______斐波那契数列
- haproxy安装