CALayer的基本操作
CALayer简介:
CALayer又称为层.
在每一个UIView内部都有一个Layer这样的属性.
UIView之所以能够显示,就是因为它里面有这个一个层,才具有显示的功能.
我们通过操作CALayer对象,可以很方便的调整UIView的一些外观属性.
可以给UIView设置阴影,圆角,边框等等.....
操作layer改变UIView外观
设置阴影
默认图层是有阴影的,只不过是透明的
RedView.layer.shadowOpacity = 1;
设置阴影的圆角
RedView.layer.shadowRadius = 10;
设置阴影的颜色,把UIKit转换成CoreGraphics的CGColorRef
RedView.layer.borderColor = [UIColor whiteColor].CGColor;
设置边框
设置图层边框,在图层中使用CoreGraphics的CGColorRef
RedView.layer.borderColor = [UIColor whiteColor].CGColor.
RedView.layer.borderWidth = 2;
设置圆角
设置图层圆角半径,圆角半径为宽度的一半,就是一个圆
RedView.layer.cornerRadius = 50;
操作layer改变UIImageView的外观.
设置图形边框
imageView.layer.borderWidth = 2;
imageView.layer.borderColor = [UIColor whiteColor].CGColor;
设置图片的圆角半径
imageView.layer.cornRadius= 50;
裁剪,超出裁剪区域的部分全部裁剪掉
imageView.layer.masksToBounds = YES;
注意: UIImageView当中image并不是直接添加在层上面的.这是添加在layer当中的contents里
我们设置层的所有属性它只作用在层上面.对contents里面的东西并不起作用,所以我们看不到图片的圆角效果
想要让图片有圆角效果,可以吧masksToBounds这个属性设为YES,
当设置为YES,就会把超过根层以外的东西都给裁剪掉.
layer 的CATransform3D属性
只有旋转的时候才可以看出3D属性X,Y,Z分别代表X,Y,Z轴.
旋转
CATransform3DmakeRotation(M_Pl,1,0,0);
平移
CATransform3DMakeTranslation(X,Y,Z);
缩放
CATransform3DMakeScale(X,Y,Z);
可以通过KVC的方式进行设置属性.
但是CATransform3DMakeRotation它的值是一个结构体,所以要把结构体转换为对象.
NSValue *value = [NSValue valueWithCATransform3D:CATransform3DmakeRotation(M_PI,1, 0, 0);
[imageView.layer setValue:value forkeyPath:@"transform.scale"];
什么时候使用KVC?当需要一些快速缩放,平移,二维的旋转时用KVC.
CALayer的基本操作的更多相关文章
- 01-CALayer的基本操作
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作
一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
- Android Notification 详解——基本操作
Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...
- 三、Redis基本操作——List
小喵的唠叨话:前面我们介绍了Redis的string的数据结构的原理和操作.当时我们提到Redis的键值对不仅仅是字符串.而这次我们就要介绍Redis的第二个数据结构了,List(链表).由于List ...
- 二、Redis基本操作——String(实战篇)
小喵万万没想到,上一篇博客,居然已经被阅读600次了!!!让小喵感觉压力颇大.万一有写错的地方,岂不是会误导很多筒子们.所以,恳请大家,如果看到小喵的博客有什么不对的地方,请尽快指正!谢谢! 小喵的唠 ...
- 一、Redis基本操作——String(原理篇)
小喵的唠叨话:最近京东图书大减价,小喵手痒了就买了本<Redis设计与实现>[1]来看看.这里权当小喵看书的笔记啦.这一系列的模式,主要是先介绍Redis的实现原理(可能很大一部分会直接照 ...
- Linq查询基本操作
摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...
- C++ map的基本操作和使用
原文地址:http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可 ...
随机推荐
- MyBatis Generator自动生成MyBatis的映射代码
MyBatis Generator大大简化了MyBatis的数据库的代码编写,有了一个配置文件,就可以直接根据表映射成实体类.Dao类和xml映射.资源地址:MyBatis项目地址:http://my ...
- 为什么使用"use strict"可以节约你的时间
转: http://ourjs.com/detail/52f572bf4534c0d806000024 "use strict"是JavaScript中一个非常好的特性,而且非常容 ...
- hiho一下103周 平衡树·Treap
平衡树·Treap 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:小Hi,我发现我们以前讲过的两个数据结构特别相似. 小Hi:你说的是哪两个啊? 小Ho:就是二 ...
- JavaScript的组成—ECMAScript、BOM和DOM
JavaScript 是一种基于 ECMAScript 规范的脚本语言,并在此基础上进行了自己的封装.ECMAScript 不是一种编程语言,仅仅是一种脚本语言规范,由欧洲计算机协会制定和发布,任 ...
- 转:Java架构师与开发者提高效率的10个工具
原文来自于:http://www.importnew.com/14624.html Java受到全球百万计开发者的追捧,已经演变为一门出色的编程语言.最终,这门语言随着技术的变化,不断的被改善以迎合变 ...
- 理解Javascript 的闭包(closure)
要理解闭包的概念先从变量的作用域说去 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之 ...
- 如何开发Android Wear应用程序
Android Wear是连接安卓手机和可穿戴产品的一个平台.自从今年上半年发布以来,Android Wear获得了大量关注,既有来自消费者的关注,也有来自开发商的关注,后者希望自己的应用程序已经准备 ...
- 数学(矩阵乘法,随机化算法):POJ 3318 Matrix Multiplication
Matrix Multiplication Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 17783 Accepted: ...
- 矩阵(快速幂):COGS 963. [NOI2012] 随机数生成器
963. [NOI2012] 随机数生成器 ★★ 输入文件:randoma.in 输出文件:randoma.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 栋 ...
- 【二分】【最长上升子序列】HDU 5489 Removed Interval (2015 ACM/ICPC Asia Regional Hefei Online)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5489 题目大意: 一个N(N<=100000)个数的序列,要从中去掉相邻的L个数(去掉整个区间 ...