SVGKLayer.m 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #import "SVGKLayer.h"
  2. @implementation SVGKLayer
  3. {
  4. }
  5. @synthesize SVGImage = _SVGImage;
  6. @synthesize showBorder = _showBorder;
  7. /** Apple requires this to be implemented by CALayer subclasses */
  8. + (id)layer
  9. {
  10. SVGKLayer* layer = [[SVGKLayer alloc] init];
  11. return layer;
  12. }
  13. - (id)init
  14. {
  15. self = [super init];
  16. if (self)
  17. {
  18. self.borderColor = [UIColor blackColor].CGColor;
  19. }
  20. return self;
  21. }
  22. - (void)setSVGImage:(SVGKImage *)newImage
  23. {
  24. if( newImage == _SVGImage )
  25. return;
  26. self.startRenderTime = self.endRenderTime = nil; // set to nil, so that watchers know it hasn't loaded yet
  27. /** 1: remove old */
  28. if( _SVGImage != nil )
  29. {
  30. [_SVGImage.CALayerTree removeFromSuperlayer];
  31. }
  32. /** 2: update pointer */
  33. _SVGImage = newImage;
  34. /** 3: add new */
  35. if( _SVGImage != nil )
  36. {
  37. self.startRenderTime = [NSDate date];
  38. [self addSublayer:_SVGImage.CALayerTree];
  39. self.endRenderTime = [NSDate date];
  40. }
  41. }
  42. - (void)setShowBorder:(BOOL)shouldShow
  43. {
  44. _showBorder = shouldShow;
  45. self.borderWidth = shouldShow ? 1.0f : 0.0f;
  46. [self setNeedsDisplay];
  47. }
  48. - (void)dealloc
  49. {
  50. self.SVGImage = nil;
  51. }
  52. @end