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的基本操作的更多相关文章

  1. 01-CALayer的基本操作

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  2. Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作

    一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...

  3. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  4. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  5. 三、Redis基本操作——List

    小喵的唠叨话:前面我们介绍了Redis的string的数据结构的原理和操作.当时我们提到Redis的键值对不仅仅是字符串.而这次我们就要介绍Redis的第二个数据结构了,List(链表).由于List ...

  6. 二、Redis基本操作——String(实战篇)

    小喵万万没想到,上一篇博客,居然已经被阅读600次了!!!让小喵感觉压力颇大.万一有写错的地方,岂不是会误导很多筒子们.所以,恳请大家,如果看到小喵的博客有什么不对的地方,请尽快指正!谢谢! 小喵的唠 ...

  7. 一、Redis基本操作——String(原理篇)

    小喵的唠叨话:最近京东图书大减价,小喵手痒了就买了本<Redis设计与实现>[1]来看看.这里权当小喵看书的笔记啦.这一系列的模式,主要是先介绍Redis的实现原理(可能很大一部分会直接照 ...

  8. Linq查询基本操作

    摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...

  9. C++ map的基本操作和使用

    原文地址:http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可 ...

随机推荐

  1. PHP获取客户端和服务器端IP

    客户端的ip变量: $_SERVER['REMOTE_ADDR'] :客户端IP,也有可能是代理IP $_SERVER['HTTP_CLIENT_IP']:代理端的IP,可能存在,也可能伪造 $_SE ...

  2. MAC 开发工具

    web开发编辑器 Espresso下载地址   密码: i9hr

  3. 单例模式——使用GCD实现单例模式 & 非ARC单例模式 &使用GCD和线程锁实现单例模式-b

    1.单利模式概述 链接:  iOS开发懒汉模式&恶寒模式 2.使用GCD实现单利模式 2.1新建一个project,然后新建一个HMDataTool类展示GCD实现单例模式 #import & ...

  4. 转:关于PHP性能优化

    原文来自于:http://www.cnblogs.com/qq78292959/archive/2012/12/28/2837272.html 1.升级硬件的一般规则:对于 PHP 脚本而言,主要的瓶 ...

  5. Java吸收换行符

            今天做题遇到的--         由于读入的字符串可能包含空格,所以采用nextLine. int n = sc.nextInt(); for(int i=0; i<n; i+ ...

  6. 不管,干一个HAPROXY先

    说不定要用到的塞.... 1.wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.12.tar.gz 2.tar -zxvf haprox ...

  7. JAVA线程示范之一种

    线程有两种方法生成,这是其中的一种.. MyRunnable.java public class MyRunnable implements Runnable { public void run() ...

  8. hibernate 3.* C3P0配置 以及为什么需要连接池!

    Hibernate自带的连接池算法相当不成熟. 它只是为了让你快些上手,并不适合用于产品系统或性能测试中. 出于最佳性能和稳定性考虑你应该使用第三方的连接池.只需要用特定连接池的设置替换 hibern ...

  9. 更改Visual Studio 2010/2012/2008的主题设置

    一.更改主题: 主题网站:http://studiostyl.es/ Visual Studio 2010发布也已经有一段时间了,不过安装后默认的白底的主题长时间看代码可能会感觉眼睛酸痛,况且时间长了 ...

  10. 【Mongous】

    amark/mongous Mongous - 一个轻量级的nodejs mongodb驱动 mongous,是我不够懂你吗?关于mongous不支持objectId查询 mongous 不需要 _i ...