搜尋

首頁  >  問答  >  主體

objective-c - CoreAnimation 和 CoreGraphics這兩個框架的區別

1.本人想知道CoreAnimation(核心動畫)和CoreGraphics(核心?)這兩個框架的區別

2.透過查詢並未得到很令人滿意的答案,所以來此想大牛提問

3.佔用GPU的情況是如何的?

黄舟黄舟2827 天前694

全部回覆(1)我來回復

  • 天蓬老师

    天蓬老师2017-05-02 09:21:40

    先說一下 Graphic是是图形的意思。

    對比一下頭檔先

    CoreAnimation.h

    #ifndef COREANIMATION_H
    #define COREANIMATION_H
    
    #include <QuartzCore/CABase.h>
    #include <QuartzCore/CATransform3D.h>
    
    #ifdef __OBJC__
    #import <Foundation/Foundation.h>
    #import <QuartzCore/CAAnimation.h>
    #import <QuartzCore/CADisplayLink.h>
    #import <QuartzCore/CAEAGLLayer.h>
    #import <QuartzCore/CAMetalLayer.h>
    #import <QuartzCore/CAEmitterBehavior.h>
    #import <QuartzCore/CAEmitterCell.h>
    #import <QuartzCore/CAEmitterLayer.h>
    #import <QuartzCore/CAGradientLayer.h>
    #import <QuartzCore/CALayer.h>
    #import <QuartzCore/CAMediaTiming.h>
    #import <QuartzCore/CAMediaTimingFunction.h>
    #import <QuartzCore/CAReplicatorLayer.h>
    #import <QuartzCore/CAScrollLayer.h>
    #import <QuartzCore/CAShapeLayer.h>
    #import <QuartzCore/CATextLayer.h>
    #import <QuartzCore/CATiledLayer.h>
    #import <QuartzCore/CATransaction.h>
    #import <QuartzCore/CATransformLayer.h>
    #import <QuartzCore/CAValueFunction.h>
    #endif
    
    #endif /* COREANIMATION_H */

    CoreGraphics.h

    #ifndef COREGRAPHICS_H_
    #define COREGRAPHICS_H_
    
    #include <CoreGraphics/CGBase.h>
    #include <CoreGraphics/CGAffineTransform.h>
    #include <CoreGraphics/CGBitmapContext.h>
    #include <CoreGraphics/CGColor.h>
    #include <CoreGraphics/CGColorSpace.h>
    #include <CoreGraphics/CGContext.h>
    #include <CoreGraphics/CGDataConsumer.h>
    #include <CoreGraphics/CGDataProvider.h>
    #include <CoreGraphics/CGError.h>
    #include <CoreGraphics/CGFont.h>
    #include <CoreGraphics/CGFunction.h>
    #include <CoreGraphics/CGGeometry.h>
    #include <CoreGraphics/CGGradient.h>
    #include <CoreGraphics/CGImage.h>
    #include <CoreGraphics/CGLayer.h>
    #include <CoreGraphics/CGPDFArray.h>
    #include <CoreGraphics/CGPDFContentStream.h>
    #include <CoreGraphics/CGPDFContext.h>
    #include <CoreGraphics/CGPDFDictionary.h>
    #include <CoreGraphics/CGPDFDocument.h>
    #include <CoreGraphics/CGPDFObject.h>
    #include <CoreGraphics/CGPDFOperatorTable.h>
    #include <CoreGraphics/CGPDFPage.h>
    #include <CoreGraphics/CGPDFScanner.h>
    #include <CoreGraphics/CGPDFStream.h>
    #include <CoreGraphics/CGPDFString.h>
    #include <CoreGraphics/CGPath.h>
    #include <CoreGraphics/CGPattern.h>
    #include <CoreGraphics/CGShading.h>
    
    #endif    /* COREGRAPHICS_H_ */

    仔細觀察可以看出,CoreGraphics是底層繪製框架,我們實際上會用到的也就是CG開頭的一些底層繪製函數和變量,這是一個純C語言框架。

    QuartzCore也就是你說的包含了CoreAnimation的框架,是iOS系統的基本渲染框架,是一個OC語言框架,是一套基於QuartzCore也就是你说的包含了CoreAnimation的框架,是iOS系统的基本渲染框架,是一个OC语言框架,是一套基于CoreGraphics的OC语言封装,封装出了基本渲染类CALayer的OC語言封裝,封裝出了基本渲染類別CALayer

    不知道說到這裡,你能不能搞清楚兩者的差別。

    回覆
    0
  • 取消回覆