好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

CALayer1简介

CALayer1简介

CALayer1-简介

一、什么是CALayer

* 在iOS系统中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。

* 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个 层 。

* 在创建UIView对象时,UIView内部会自动创建一个 层 (即CALayer对象),通过UIView的 layer 属性可以访问这个层。当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的 层 上,绘图完毕后,系统会将 层 拷贝到屏幕上,于是就完成了UIView的显示。

* 换句话说,UIView本身不具备显示的功能,是它内部的 层 才有显示功能。

二、CALayer的简单使用

上面已经说过了,UIView之所以能够显示,完全是因为内部的CALayer对象。因此,通过操作这个CALayer对象,可以很方便地调整UIView的一些界面属性,比如:阴影、圆角大小、边框宽度和颜色等。

1.CALayer是被定义在QuartzCore框架中的,因此要想使用CALayer,先导入QuartzCore框架

1> 点击项目名称,然后点击右边TARGETS下面的target

2> 点击Build Pases后,展开Link Binary....,添加 + 号

3> 在搜索框中输入"Quartz",选中QuartzCore.framework,最后add添加

4> 添加完毕后,这 个框架就会出现在项目文件夹中

如果你觉得位置不好看,还可以将它拖 到Frameworks文件夹下,跟其他框架放一起

2.在项目代码中导入QuartzCore框架的主头文件

 #import   <QuartzCore/QuartzCore.h> 

3.通过CALayer修改UIImageView的界面属性

你也可以使用UIButton或者UILabel,这里就以UIImageView为例子

1> 先创建一个UIImageView,添加到控制器的view中

 1  UIImage *image = [UIImage imageNamed: @"  lufy.png  "  ];
  2  UIImageView *imageView =  [[[UIImageView alloc] initWithImage:image] autorelease];
  3  imageView.center = CGPointMake( 100 ,  100  );
  4  [self.view addSubview:imageView];

2> 设置阴影

 1  imageView.layer. shadowColor  =  [UIColor grayColor]. CGColor ;
  2  imageView.layer. shadowOffset  = CGSizeMake( 10 ,  10  );
  3  imageView.layer. shadowOpacity  =  0.5 ; 

* 第1行设置阴影的颜色为灰色 ,注意,这里使用的是UIColor的CGColor属性,是一种CGColorRef类型的数据

* 第2行设置阴影的偏移大小,可以看出阴影往原图的右下角偏移

* 第3行设置阴影的不透明度为0.5,表示半透明。如果为1,代表完全不透明。

3>  设置圆角大小

通过layer属性可以访问视图内部的CALayer对象

 1  imageView.layer. cornerRadius  =  10  ;
  2  imageView.layer. masksToBounds  = YES;

* 第1行设置圆角半径为10

* 第2行的maskToBounds=YES:可以看做是 强制内部的所有子层支持圆角效果,少了这个设 置,UIImageView是不会有圆 角效果的

* 注意,如果设置了 maskToBounds=YES ,那将不会有阴影效果

4> 设置边框宽度和颜色

 1  imageView.layer. borderWidth  =  5  ;
  2  imageView.layer. borderColor  = [UIColor redColor]. CGColor ;

* 第1 行设 置边框宽度为5

* 第2行设置边框颜色为红色

 

 

 

分类:  iOS开发进阶

标签:  ios ,  iphoe应用开发 ,  ipad应用开发 ,  objective-c

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于CALayer1简介的详细内容...

  阅读:41次