iOS - 图形处理之CAShapeLayer

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS - 图形处理之CAShapeLayer相关的知识,希望对你有一定的参考价值。

参考技术A <li> CAShapeLayer继承于CALayer,可以使用CALayer的全部属性;
<li> CAShapeLayer需要和贝塞尔曲线结合使用才更有意义。贝塞尔曲线可以为其提供形状,而单独使用CAShapeLayer是没有任何意义的;
<li> 使用CAShapeLayer与贝塞尔曲线可以实现不在View的DrawRect方法中画出一些想要的图形。

<li> UIBezierPath这个类在UIKit中,是CoreGraphics框架关于路径path的一个封装,使用此类可以定义简单的形状。
<li> UIBezierPath对象是对CGPathRef数据类型的封装。一般使用UIBezierPath都是在重写View的-drawRect方法中使用 ,
步骤:
1. 重写 -drawRect方法;
2. 创建UIBezierPath对象;
3. 使用方法 -moveToPoint 设置初始点;
4. 根据具体要求使用UIBezierPath类的实例方法(画线、矩形、圆形 等等)
5. 设置UIBezierPath对象的相关属性(eg: lineWidth 、lineJoinStyle 、aPath.lineCapStyle 、color 等等);
6. 使用行程或者填充方法结束绘图。

<li>绘制特别的形状
1、CAShapeLayer有一个神奇的属性 - Path ,用这个属性配合上UIBezierPath这个类就可以达到神奇的效果。

总结:可以不需要通过重写-drawRect方法去实现图形的绘制,更加的随机,高性能。

2、一些特殊的图形也可以通过CAShapeLayer绘制出来,如:

总结:UIBezierPath提供需要绘制的图形,而CAShapeLayer提供图形的渲染显示到View,不需要在重写-drawRect中拿到图形上下文。

以上是关于iOS - 图形处理之CAShapeLayer的主要内容,如果未能解决你的问题,请参考以下文章

iOS 使用UIBezierPath和CAShapeLayer画各种图形

iOS开发UI篇——Core Animation核心动画CAShapeLayer(绘制图形等)简介

使用UIBezierPath和CAShapeLayer画各种图形

使用CAShapeLayer与UIBezierPath画出想要的图形

使用CAShapeLayer与UIBezierPath画出想要的图形

放肆地使用UIBezierPath和CAShapeLayer画各种图形