diff --git a/ios/ARTNode.m b/ios/ARTNode.m index b75a4ee..a0a8f69 100644 --- a/ios/ARTNode.m +++ b/ios/ARTNode.m @@ -8,6 +8,7 @@ #import "ARTNode.h" #import "ARTContainer.h" +#import "RCTConvert+ART.h" @implementation ARTNode @@ -79,7 +80,9 @@ - (void)renderContentTo:(CGContextRef)context { CGContextSaveGState(context); CGContextConcatCTM(context, self.transform); CGContextSetAlpha(context, self.opacity); - CGContextSetShadowWithColor(context, self.shadow.offset, self.shadow.blur, self.shadow.color.CGColor); + UIColor *color = [UIColor colorWithCGColor:[RCTConvert CGColor:@(self.shadow.color)]]; + color = [color colorWithAlphaComponent:self.shadow.alpha]; + CGContextSetShadowWithColor(context, self.shadow.offset, self.shadow.blur, color.CGColor); } - (void)renderLayerTo:(CGContextRef)context diff --git a/ios/ARTShadow.h b/ios/ARTShadow.h index 2aa5b48..fcc5dce 100644 --- a/ios/ARTShadow.h +++ b/ios/ARTShadow.h @@ -8,5 +8,6 @@ typedef struct { CGSize offset; CGFloat blur; - UIColor* color; + CGFloat alpha; + CGFloat color; } ARTShadow; diff --git a/ios/RCTConvert+ART.m b/ios/RCTConvert+ART.m index cbcfdcd..500e428 100644 --- a/ios/RCTConvert+ART.m +++ b/ios/RCTConvert+ART.m @@ -164,12 +164,9 @@ + (ARTBrush *)ARTBrush:(id)json + (ARTShadow)ARTShadow:(id)json { NSArray *arr = [self NSArray:json]; - - UIColor *color = [UIColor colorWithCGColor:[self CGColor:[arr objectAtIndex:0]]]; - color = [color colorWithAlphaComponent:[[arr objectAtIndex:1] floatValue]]; - return (ARTShadow){ - .color = color, + .color = [[arr objectAtIndex:0] doubleValue], + .alpha = [[arr objectAtIndex:1] floatValue], .blur = [[arr objectAtIndex:2] floatValue], .offset = (CGSize){ .width = [[arr objectAtIndex:3] floatValue],