recherche

Maison  >  Questions et réponses  >  le corps du texte

objective-c - CoreAnimation 和 CoreGraphics这两个框架的区别

1.本人想知道CoreAnimation(核心动画)和CoreGraphics(核心?)这两个框架的区别

2.通过查询并未得到很令人满意的答案,所以来此想大牛提问

3.占用GPU的情况是如何的?

黄舟黄舟2828 Il y a quelques jours695

répondre à tous(1)je répondrai

  • 天蓬老师

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

    Tout d’abord, parlons de Graphic qui signifie 图形.

    Comparez d'abord les fichiers d'en-tête

    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_ */

    Si vous regardez attentivement, vous pouvez voir que CoreGraphics est le cadre de dessin sous-jacent. Ce que nous utiliserons en fait, ce sont des fonctions et des variables de dessin sous-jacentes commençant par CG. Il s'agit d'un cadre de langage C pur.

    QuartzCore est le framework dont vous parlez qui contient CoreAnimation C'est le framework de rendu de base du système iOS. C'est un framework de langage OC c'est un ensemble d'encapsulation de langage OC basé sur CoreGraphics. , qui encapsule le rendu de base CALayer.

    Je me demande si vous pouvez comprendre la différence entre les deux à ce stade.

    répondre
    0
  • Annulerrépondre