123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317 |
- #import "SVGKDefine.h"
- #import "SVGKParser.h"
- @class SVGDocument;
- @class SVGSVGElement;
- @class SVGKSource;
- @class SVGKParseResult;
- #define ENABLE_GLOBAL_IMAGE_CACHE_FOR_SVGKIMAGE_IMAGE_NAMED 1
- @class SVGDefsElement;
- @class SVGKImage; // needed for typedef below
- typedef void (^SVGKImageAsynchronousLoadingDelegate)(SVGKImage* loadedImage, SVGKParseResult* parseResult );
- @interface SVGKImage : NSObject // doesn't extend UIImage because Apple made UIImage immutable
- {
- #if ENABLE_GLOBAL_IMAGE_CACHE_FOR_SVGKIMAGE_IMAGE_NAMED
- BOOL cameFromGlobalCache;
- #endif
- }
- @property (weak, nonatomic, readonly) UIImage* UIImage;
- @property (nonatomic, strong, readonly) SVGKSource* source;
- @property (nonatomic, strong, readonly) SVGKParseResult* parseErrorsAndWarnings;
- @property (nonatomic, strong, readonly) SVGDocument* DOMDocument;
- @property (nonatomic, strong, readonly) SVGSVGElement* DOMTree;
- @property (nonatomic, strong, readonly) CALayer* CALayerTree;
- #if ENABLE_GLOBAL_IMAGE_CACHE_FOR_SVGKIMAGE_IMAGE_NAMED
- @property (nonatomic, strong, readonly) NSString* nameUsedToInstantiate;
- #endif
- #pragma mark - methods to quick load an SVG as an image
- + (SVGKImage *)imageNamed:(NSString *)name;
- + (SVGKImage *)imageNamed:(NSString *)name withCacheKey:(NSString *)key;
- + (SVGKImage *)imageNamed:(NSString *)name inBundle:(NSBundle *)bundle;
- + (SVGKImage *)imageNamed:(NSString *)name inBundle:(NSBundle *)bundle withCacheKey:(NSString *)key;
- +(SVGKParser *) imageAsynchronouslyNamed:(NSString *)name onCompletion:(SVGKImageAsynchronousLoadingDelegate) blockCompleted;
- + (SVGKImage *)imageWithContentsOfFile:(NSString *)path;
- + (SVGKImage *)imageWithContentsOfURL:(NSURL *)url;
- + (SVGKParser*) imageParserWithContentsOfFileAsynchronously:(NSString *)aPath onCompletion:(SVGKImageAsynchronousLoadingDelegate)blockCompleted;
- + (SVGKImage*) imageWithContentsOfFileAsynchronously:(NSString *)aPath onCompletion:(SVGKImageAsynchronousLoadingDelegate)blockCompleted;
- +(SVGKImage*) imageWithData:(NSData *)newNSData;
- + (SVGKParser*) imageParserWithDataAsynchronously:(NSData *)newNSData onCompletion:(SVGKImageAsynchronousLoadingDelegate)blockCompleted;
- + (SVGKImage*) imageWithDataAsynchronously:(NSData *)newNSData onCompletion:(SVGKImageAsynchronousLoadingDelegate)blockCompleted;
- +(SVGKImage*) imageWithSource:(SVGKSource *)newSource;
- +(SVGKParser *) imageWithSource:(SVGKSource *)source onCompletion:(SVGKImageAsynchronousLoadingDelegate)blockCompleted;
- - (id)initWithContentsOfFile:(NSString *)path;
- - (id)initWithData:(NSData *)data;
- #pragma mark - UIImage methods cloned and re-implemented as SVG intelligent methods
- -(BOOL) hasSize;
- @property(nonatomic) CGSize size;
- - (void)drawAtPoint:(CGPoint)point;
- #pragma mark - unsupported / unimplemented UIImage methods (should add as a feature)
- @property(nonatomic) CGFloat scale;
- - (void)drawAtPoint:(CGPoint)point blendMode:(CGBlendMode)blendMode alpha:(CGFloat)alpha;
- - (void)drawInRect:(CGRect)rect;
- - (void)drawInRect:(CGRect)rect blendMode:(CGBlendMode)blendMode alpha:(CGFloat)alpha;
- - (void)drawAsPatternInRect:(CGRect)rect;
- #if SVGKIT_UIKIT
- + (UIImage *)animatedImageNamed:(NSString *)name duration:(NSTimeInterval)duration ;
- + (UIImage *)animatedResizableImageNamed:(NSString *)name capInsets:(UIEdgeInsets)capInsets duration:(NSTimeInterval)duration ;
- + (UIImage *)animatedImageWithImages:(NSArray *)images duration:(NSTimeInterval)duration ;
- #endif
- #pragma mark ---------end of unsupported items
- #pragma mark - core methods for interacting with an SVG image usefully (not from UIImage)
- - (id)initWithSource:(SVGKSource *)source;
- - (id)initWithParsedSVG:(SVGKParseResult *)parseResult fromSource:(SVGKSource*) parseSource;
- -(CALayer *)newCALayerTree;
- - (CALayer *)layerWithIdentifier:(NSString *)identifier;
- - (CALayer *)layerWithIdentifier:(NSString *)identifier layer:(CALayer *)layer;
- -(CALayer*) newCopyPositionedAbsoluteLayerWithIdentifier:(NSString *)identifier;
- -(CALayer*) newCopyPositionedAbsoluteOfLayer:(CALayer *)originalLayer;
- -(CALayer*) newCopyPositionedAbsoluteOfLayer:(CALayer *)originalLayer withSubLayers:(BOOL) recursive;
- - (NSDictionary*) dictionaryOfLayers;
- #pragma mark - Useful bonus methods, will probably move to a different class at some point
- -(void) scaleToFitInside:(CGSize) maxSize;
- +(void) clearCache;
- @end
|