iOS 绘制图形

Quartz2D

  • Quartz2D的API是纯C语言的
  • 数据类型和函数基本都以CG作为前缀
    • CGContextRef
    • CGPathRef
    • CGContextStrokePath(ctx);
  • 一般开发中不用Quartz2D去绘制图形,OC为我们提供了一个绘制图形的对象

UIBezierPath

  • UIBezierPath对象是OC为我们封装好了一些常用的Quartz2DAPI,可以快速上手。
  • 不管是Quartz2D 还是 UIBezierPath只要在苹果的平台下绘制图形的过程都是一样的,只不过内部的方法可能帮我们封装好了一下,但是绘制图形的过程我们必须了解
    • 绘制图形的过程:

    获取图形上下文 (所谓的上下文个人理解:就是画板,有了画板才能画图形)
    创建路径
    把路径添加到上下文
    渲染上下文

绘制图形的方法

  • 绘制图形的时候我们需要在 - (void)drawRect:(CGRect)rect方法中执行,该方法会在view 将要显示的时候调用也就是说先调用 -(void)ViewDidload方法在调用该方法
  • 需要注意的是,只有在- (void)drawRect:(CGRect)rect方法中才能获取到和view的layer相关联的图形上下文
  • -(void)drawRect:(CGRect)rect方法中 传递的rect属性是当前控件的bounds
  • 注意:drawRect不可以手动调用,如果想重新绘制或者刷新绘制 需要调用 setNeedsDisplay方法
    demo

基本图形的绘制

基本图形的绘制

绘制下载圆形

富文本

CADDisplayLink

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Quartz2D以及drawRect的重绘机制字数1487 阅读21 评论1 喜欢1一、什么是Quartz2D Q...
    PurpleWind阅读 808评论 0 3
  • --绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益...
    韩七夏阅读 2,791评论 2 10
  • 什么是Quartz 2D 1>Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac OS X系统(跨平台,...
    青葱烈马阅读 756评论 0 3
  • 在进大学之前,我曾在朋友圈里看到过这样的话:大学就是半个社会,在这里,你可以无拘无束的做自己喜欢的事情(当然,不能...
    记忆海阅读 773评论 0 2
  • 夏天来了,上海的梅雨季又闷又潮,难受的要命,我们还是去山里避暑吧。
    LillianBi阅读 206评论 0 1