pattern是一个连续画在context上的一部分内容。他分为两种,一种是无颜色的pattern,另外一种是有颜色的pattern。
pattern的过程都是这样子的。
1.设置pattern fill的 colorSpace(针对函数 CGColorSpaceCreatePattern,他是设置pattern的颜色空间的)
- 对于有颜色的pattern而言,设置颜色空间为NULL
- 对于没有颜色的pattern而言,设置在fill或者stroke pattern的时候想要的颜色。
2.设置pattern的每个cell所绘画的内容。
- 这是一个回调函数。函数所做的内容就是绘制cell的内容。函数的定义是:
typedef void (*CGPatternDrawPatternCallback) (void *info,CGContextRef context)
- info是绘制所传递进来的数据
- context是绘制的context
3.创建pattern
- 通过函数
CGPatternCreate 来进行创建。
4.根据需要,设置对pattern的处理方式,是fill还是stroke。
通过函数
- CGContextSetFillPattern
- CGContextSetStrokePattern
- 这两个函数有一个需要注意的地方时,当创建的是无颜色的pattern绘制的时候,需要在函数的最后一个参数根据色彩空间规定颜色的色值。而对于有颜色的pattern的绘制的时候,需要指定颜色的alpha值。
5.进行绘制。