From 1b03714823234ba7a505feae527337a67b7230b7 Mon Sep 17 00:00:00 2001 From: Yury Popov Date: Fri, 15 May 2015 13:29:56 +0300 Subject: [PATCH] SVG view layer refactoring --- pxSVG/pxSVGView.m | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/pxSVG/pxSVGView.m b/pxSVG/pxSVGView.m index db43f72..840c1c8 100644 --- a/pxSVG/pxSVGView.m +++ b/pxSVG/pxSVGView.m @@ -10,19 +10,21 @@ #import "pxSVGLayer.h" @interface pxSVGView () -@property (weak) pxSVGLayer *svgLayer; @end @implementation pxSVGView ++ (Class)layerClass +{ + return [pxSVGLayer class]; +} + - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; self.contentMode = UIViewContentModeScaleAspectFit; - pxSVGLayer *sl = [pxSVGLayer new]; - [self.layer addSublayer:sl]; - self.svgLayer=sl; - self.svgLayer.svgDelegate = self; + pxSVGLayer *sl = (pxSVGLayer*)self.layer; + sl.svgDelegate = self; return self; } @@ -30,10 +32,10 @@ - (void)layoutSublayersOfLayer:(CALayer *)layer { [super layoutSublayersOfLayer:layer]; if (layer != self.layer) return; - self.svgLayer.transform = CATransform3DIdentity; - [self.svgLayer setFrame:self.layer.bounds]; + self.layer.transform = CATransform3DIdentity; + [self.layer setFrame:self.bounds]; CATransform3D tr = CATransform3DIdentity; - CGRect c = self.svgLayer.contentRect; + CGRect c = ((pxSVGLayer*)self.layer).contentRect; CGFloat scx = c.size.width/self.bounds.size.width, scy = c.size.height/self.bounds.size.height, @@ -47,7 +49,7 @@ - (void)layoutSublayersOfLayer:(CALayer *)layer break; default: break; } - [self.svgLayer setTransform:tr]; + [(pxSVGLayer*)self.layer setTransform:tr]; } - (void)svgLayerDidLoadImage:(pxSVGLayer *)svgLayer @@ -66,17 +68,17 @@ - (void)svgLayer:(pxSVGLayer *)svgLayer didFailedLoad:(NSError *)error - (void)loadData:(NSData *)data { - [self.svgLayer loadData:data]; + [(pxSVGLayer*)self.layer loadData:data]; } - (void)loadString:(NSString *)string { - [self.svgLayer loadString:string]; + [(pxSVGLayer*)self.layer loadString:string]; } - (void)loadURL:(NSURL *)url { - [self.svgLayer loadURL:url]; + [(pxSVGLayer*)self.layer loadURL:url]; } @end