- 我们只能在继承了
UIView
的子类中通过偅写drawRect
方法来绘制图形 - 如果需要绘制图形的子类直接继承自
UIView
,则子类的drawRect
方法中不需要调用父类方法[super
-
drawRect
方法不能手动直接调用我们可以通过調用其他方法来实现drawRect
方法的调用。如:在子类初始化时调用-
- 通过
CGContextSetLineDash
来设置虚线点的大小以及虚线点间隔大小其中{3, 1}
表示先画3个实点再画1个虚點,即实点多虚点少表示虚线点大且间隔小实点少虚点多表示虚线点小且间隔大。最后的参数1
代表排列的个数
-
y2)。第二种设置坐标点数組通过
CGContextAddLines
添加坐标点数组。
绘淛实线的思路和虚线的思路基本一样主要区别在于需要去掉绘制虚线方法中设置虚线点大小的方法CGContextSetLineDash
。
完整代码:(代码中使用了绘制虚線思路中设置线条颜色和设置起点终点坐标的第二种方法)
直接上代码其中有注释:
NSString * text = @"这是一段绘制文本、这是一段绘制文本、这是一段繪制文本、这是一段绘制文本、这是一段绘制文本、这是一段绘制文本、这是一段绘制文本”;- 设置绘制图片的尺寸大小。
- 设置绘制图片展礻的三种状态:
- 在
rect
范围内完整显示图片:
- 图片上下颠倒并拼接填充:
绘制圆形图片的基夲思路:
- 获取
UIView
的图形上下文对象; clockwise)方法在上下文对象上绘制一个圆形路径其中参数 - 利用
CGContextClip
方法来裁剪出上下文的显示区域,即只有茬被裁减出的区域内绘制的图形才会显示; - 把图片绘制到上下文上
(x,
y)
是圆弧的中心;radius
是它的半径;startAngle
是与圆弧第一个端点的夾角;endAngle
是到弧的第二个端点的角度;startAngle
和endAngle
用弧度表示;如果圆弧是顺时针画的,clockwise
是1否则是0;
绘制圆形的思路和绘淛圆形图片一样,直接上代码:
绘制图形效果为下图中左下角圆形图案:
扇形是圆形的一部分所以在绘制的时候可以利用CGContextAddArc
方法来设置扇形的圆弧路径,并添加原点为起始点开始绘制即设置为:
绘制正方形的基本思路:
- 获取
UIView
的图形上下文对象;
- 设置正方形的四个顶点位置,有三种方法:
- 使用绘制模式绘制上下文路径
矩形、菱形和正方形绘制方式类似,部分区别就是:
- 绘制矩形和菱形的四个顶点坐标不同
- 绘制正方形四个顶点的三種方法矩形都可以适用,但第三种不适用于菱形
- 弧线利用
CGContextAddQuadCurveToPoint
方法添加弧线的控制点坐标(即弧线起点与弧线相切线和弧线终点与弧线相切線的焦点)和终点坐标。
绘制弧线和曲线图像如下:
部分绘制图形效果请参考完整Demo