如何在IOS中使用CALayer绘制图片

  介绍

本篇文章为大家展示了如何在IOS中使用CALayer绘制图片,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强> IOS中CALayer绘制图片的实例详解

CALayer渲染内容图层。与UIImageView相比,不具有事件响应功能,且UIImageView是管理内容。

注意事项:如何使用委托对象执行代理方法进行绘制,切记需要将委托设置为零,否则会导致异常崩溃。

代码示例:

CGPoint  position =, CGPointMake (160.0, 200.0);,   CGRect  bounds =, CGRectMake (0.0, 0.0, 150.0, 150.0),,   CGFloat  cornerRadius =, 150.0,/, 2,,   CGFloat  borderWidth =, 2.0; //,阴影层,   CALayer  * layerShadow =, [[CALayer  alloc], init),,   时间=layerShadow.position 位置;,   layerShadow.bounds =时间界限;大敌;;   时间=layerShadow.cornerRadius  cornerRadius;,   时间=layerShadow.borderWidth  borderWidth;,   时间=layerShadow.borderColor  [UIColor  whiteColor] .CGColor;,   时间=layerShadow.shadowColor  [UIColor  grayColor] .CGColor;,   时间=layerShadow.shadowOffset  CGSizeMake (2.0, 1.0);,   layerShadow.shadowOpacity =1.0;祝福;   layerShadow.shadowRadius =3.0;祝福;   [self.view.layer  addSublayer: layerShadow]; //,容器层,   CALayer  * layerContant =, [[CALayer  alloc], init),,//,添加到父图层,   [self.view.layer  addSublayer layerContant):,,//,图层中心点,大小(中心点和大小构成帧),   时间=layerContant.position 位置;,   layerContant.bounds =时间界限;大敌;;//,图层背景颜色,   时间=layerContant.backgroundColor  [UIColor  redColor] .CGColor;,//,图层圆角半径,   时间=layerContant.cornerRadius  cornerRadius;,//,图层蒙版,子图层是否剪切图层边界,//,,layerContant.mask =,零,,   时间=layerContant.masksToBounds 是的,,//,边框宽度,颜色,   时间=layerContant.borderWidth  borderWidth;,   时间=layerContant.borderColor  [UIColor  whiteColor] .CGColor;,//,阴影颜色,偏移量,透明度、形状,模糊半径,//,,layerContant.shadowColor =, [UIColor  grayColor] .CGColor;,//,,layerContant.shadowOffset =, CGSizeMake (2.0, 1.0);,//,,layerContant.shadowOpacity =, 1.0,,//,,CGMutablePathRef  path =, CGPathCreateMutable (),,,,//,,layerContant.shadowPath =,路径;,//,,layerContant.shadowRadius =, 3.0,,//,图层透明度,   layerContant.opacity =, 1.0; //,绘制图片显示方法1,//,图层形变,//,旋转(角转换弧度:弧度=角度* M_PI/180; x上下对换,y左右对换,z先上下对换再左右对换;-1.0 ~ 1.0),//,,layerContant.transform =, CATransform3DMakeRotation (M_PI,, 0.0, 0.0, 0.0),,//,缩放(0.0 ~ 1.0),//,,layerContant.transform =, CATransform3DMakeScale (0.8, 0.8, 0.8),,//,移动,//,,layerContant.transform =, CATransform3DMakeTranslation (10.0, 1.0, 1.0),,//,显示内容,   ,[layerContant  setContents: [UIImage  imageNamed: @" header"] .CGImage];

,绘制图片显示方法2,

layerContant.delegate =,自我,,   [layerContant  setNeedsDisplay];,   ,   安康;(空白)drawLayer:(CALayer  *) layer 它:(CGContextRef) ctx    {,//,才能绘图,   CGContextSaveGState才能(ctx),,//才能,图形上下文形变,避免图片倒立显示,   CGContextScaleCTM才能(ctx,, 1.0, -1.0),,   CGContextTranslateCTM才能(ctx,, 0.0, -150.0),,//才能,图片,   UIImage 才能;* image =, (UIImage  imageNamed: @" header"),,   CGContextDrawImage才能(ctx, CGRectMake (0.0, 0.0, 150.0, 150.0),, image.CGImage),,   CGContextRestoreGState才能(cox);,   } //,绘制实线,虚线,   安康;(空白)drawLayer:(CALayer  *) layer 它:(CGContextRef) ctx    {,,//,才能绘实线,//才能,线条宽,   CGContextSetLineWidth才能(ctx, 1.0);,//才能,线条颜色,//,,CGContextSetRGBStrokeColor (ctx,, 1.0, 0.0, 0.0, 1.0),,   CGContextSetStrokeColorWithColor才能(ctx, [UIColor  greenColor] .CGColor),,//,才能方法1,//,才能坐标点数组,   CGPoint 才能;a点[2],,   a点才能[0],=,CGPointMake (10.0, 50.0);,   a点才能[1],=,CGPointMake (140.0, 50.0);,//,才能添加线,点[]坐标数组,和计数大小,   CGContextAddLines才能(ctx, a点,,2),,//才能,根据坐标绘制路径,   CGContextDrawPath才能(ctx, kCGPathStroke),,//,才能方法2,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在IOS中使用CALayer绘制图片