许多Quartz函数依赖于引用一个您可以绘制的上下文。例如,清单 1-5 中的函数调用。 这里设置了4像素的线宽,设置灰色,然后在矩形容器中画一个椭圆。每个函数调用都需要一个context
参数,它必须是一个有效的CGContextRef
类型。 您可以自己构建此上下文(如清单1-4 所示)或从UIKit中检索一个,这将在下一部分中探讨。
清单 1-5 画一个椭圆
1 | // Set the line width CGContextSetLineWidth(context, 4); |
清单 1-5 中的代码应该存在于清单 1-4 所说的 Perform Drawing here 所示的位置。在清单 1-4 中的这一位置上,您已经完全创建了位图上下文引用,并且可以使用该引用来处理这些绘制请求。
在清单 1-4 结束时,您创建了一个图像并手动释放了上下文。图 1-5 显示了将清单 1-5 合并到清单 1-4 中创建的输出。您生成的图像是一个用4像素宽的线条描边的灰色椭圆。 图 1-5 显示了UIImageView
实例中显示的该图像。
整个过程的执行不经过UIKit的支持。唯一的UIKit调用是imageWithCGImage :
,它将新创建的CGImageRef
转换为UIImage
实例。
图 1-5 Core Graphics函数需要一个上下文来绘制椭圆
本文翻译自《iOS Drawing Practical UIKit Solutions》作者:Erica Sadun,翻译:Cheng Dong。如果觉得本书不错请购买支持正版:亚马逊购买传送门,本书所有源代码可在GitHub上下载。译者虽然力求做到信,达,雅,但是由于时间仓促加之译者水平十分有限,文中难免会出现不正确,不准确,词不达意,难于理解的地方,还望各位批评指正,共同进步,谢谢。转载请注明出处。