diff --git a/ios/Elements/RNSVGGroup.h b/ios/Elements/RNSVGGroup.h index 1ef6a8f5..28a908f2 100644 --- a/ios/Elements/RNSVGGroup.h +++ b/ios/Elements/RNSVGGroup.h @@ -16,5 +16,6 @@ @interface RNSVGGroup : RNSVGPath - (void)pathRenderLayerTo:(CGContextRef)contex; +- (void)renderLayerToWithTransform:(CGContextRef)context transform:(CGAffineTransform)transform; @end diff --git a/ios/Elements/RNSVGGroup.m b/ios/Elements/RNSVGGroup.m index 18b434e5..a9452782 100644 --- a/ios/Elements/RNSVGGroup.m +++ b/ios/Elements/RNSVGGroup.m @@ -11,9 +11,16 @@ @implementation RNSVGGroup - (void)renderLayerTo:(CGContextRef)context +{ + [self renderLayerToWithTransform:context transform:CGAffineTransformIdentity]; +} + +- (void)renderLayerToWithTransform:(CGContextRef)context transform:(CGAffineTransform)transform { RNSVGSvgView* svg = [self getSvgView]; [self clip:context]; + + CGContextConcatCTM(context, transform); [self traverseSubviews:^(RNSVGNode *node) { if (node.responsible && !svg.responsible) { svg.responsible = YES; diff --git a/ios/Text/RNSVGText.m b/ios/Text/RNSVGText.m index da9c969e..4ef47b97 100644 --- a/ios/Text/RNSVGText.m +++ b/ios/Text/RNSVGText.m @@ -25,8 +25,8 @@ - (void)renderLayerTo:(CGContextRef)context { CGContextSaveGState(context); - CGContextConcatCTM(context, CGAffineTransformMakeTranslation([self getShift:context path:nil], 0)); - [super renderLayerTo:context]; + CGAffineTransform transform = CGAffineTransformMakeTranslation([self getShift:context path:nil], 0); + [super renderLayerToWithTransform:context transform:transform]; CGContextRestoreGState(context); }