zoukankan      html  css  js  c++  java
  • Quartz2D总结

    天了噜,脑子完全懵了,最起码说出来个上下文啊,连这个都给忘了,特此总结一下,并以此缅怀这次面试

    Quartz2D的API来自于Core Graphics(这就是为什么CGContextRef是以CG开头),需要导入CoreGraphics(Xcode6之后不需要导入了)

    图形上下文:是一个CGContextRef类型的数据

    图形上下文的作用:

    1.保存绘图信息、绘图状态

    2.决定绘制的输出目标(绘制到什么地方去)(输出目标可以是PDF文件、Bitmap或者显示器的窗口上

    Bitmap Graphics Context
    PDF Graphics Context
    Window Graphics Context
    Layer Graphics Context
    Printer Graphics Context

    自己画一个view
    步骤:
    1.新建一个类,继承自UIView
    2.实现- (void)drawRect:(CGRect)rect方法,并在此方法中取得当前view的图形上下文
    3.创建自己的绘制path,并根据path来绘制图形
    4.利用图形上下文将绘制的所有内容渲染显示到view上面

    当然,比如Bitmap的图形上下文就不必在- (void)drawRect:(CGRect)rect里面了,直接创建一个就可:
    // 创建一个bitmap上下文
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(200, 200), NO, 0);
         // 获取bitmap上下文
        CGContextRef ctr = UIGraphicsGetCurrentContext();
        // 画圆
        CGContextAddEllipseInRect(ctr, CGRectMake(50, 50, 100, 100));
        // 渲染
        CGContextStrokePath(ctr);
     // 从上下文获取画出的图片
        UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    
        UIImageView *imageView = [[UIImageView alloc] initWithImage:img];
        CGRect frame = imageView.frame;
        frame.origin = CGPointMake(50, 50);
        imageView.frame = frame;
        [self.view addSubview:imageView];

    待续。。。

    部分参考自:http://www.jianshu.com/p/eecffec3b7af



  • 相关阅读:
    11 改进版通过队列实现一个生产者消费者模型
    13 精进版SVIP版通过队列实现一个生产者消费者模型
    12 再次改进版通过队列实现一个生产者消费者模型
    31 进程
    join方法
    30 进程 线程
    进程传参方式和创建方式2
    设计模式 单例模式
    设计模式 抽象工厂模式
    设计模式 简单工厂模式
  • 原文地址:https://www.cnblogs.com/hyuganatsu/p/Quartz2D.html
Copyright © 2011-2022 走看看