介绍
本篇文章为大家展示了如何在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绘制图片