84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
1.本人想知道CoreAnimation(核心動畫)和CoreGraphics(核心?)這兩個框架的區別
2.透過查詢並未得到很令人滿意的答案,所以來此想大牛提問
3.佔用GPU的情況是如何的?
人生最曼妙的风景,竟是内心的淡定与从容!
先說一下 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語言框架。
CoreGraphics
QuartzCore也就是你說的包含了CoreAnimation的框架,是iOS系統的基本渲染框架,是一個OC語言框架,是一套基於QuartzCore也就是你说的包含了CoreAnimation的框架,是iOS系统的基本渲染框架,是一个OC语言框架,是一套基于CoreGraphics的OC语言封装,封装出了基本渲染类CALayer的OC語言封裝,封裝出了基本渲染類別CALayer。
QuartzCore
CoreAnimation
CALayer
不知道說到這裡,你能不能搞清楚兩者的差別。
先說一下 Graphic是是
图形
的意思。對比一下頭檔先
CoreAnimation.h
CoreGraphics.h
仔細觀察可以看出,
CoreGraphics
是底層繪製框架,我們實際上會用到的也就是CG開頭的一些底層繪製函數和變量,這是一個純C語言框架。QuartzCore
也就是你說的包含了CoreAnimation
的框架,是iOS系統的基本渲染框架,是一個OC語言框架,是一套基於QuartzCore
也就是你说的包含了CoreAnimation
的框架,是iOS系统的基本渲染框架,是一个OC语言框架,是一套基于CoreGraphics
的OC语言封装,封装出了基本渲染类CALayer
的OC語言封裝,封裝出了基本渲染類別CALayer
。不知道說到這裡,你能不能搞清楚兩者的差別。