diff --git a/AsyncDisplayKit/ASTextNode.mm b/AsyncDisplayKit/ASTextNode.mm index b564caa488..150644e52e 100644 --- a/AsyncDisplayKit/ASTextNode.mm +++ b/AsyncDisplayKit/ASTextNode.mm @@ -44,6 +44,7 @@ struct ASTextNodeDrawParameter { @implementation ASTextNode { CGSize _shadowOffset; CGColorRef _shadowColor; + UIColor *_cachedShadowUIColor; CGFloat _shadowOpacity; CGFloat _shadowRadius; @@ -232,6 +233,10 @@ static NSArray *DefaultLinkAttributeNames = @[ NSLinkAttributeName ]; .pointSizeScaleFactors = self.pointSizeScaleFactors, .layoutManagerCreationBlock = self.layoutManagerCreationBlock, .textStorageCreationBlock = self.textStorageCreationBlock, + .shadowOffset = _shadowOffset, + .shadowColor = _cachedShadowUIColor, + .shadowOpacity = _shadowOpacity, + .shadowRadius = _shadowRadius }; } @@ -1043,7 +1048,11 @@ static CGRect ASTextNodeAdjustRenderRectForShadowPadding(CGRect rendererRect, UI if (shadowColor != NULL) { CGColorRetain(shadowColor); } + if (_shadowColor != NULL) { + CGColorRelease(_shadowColor); + } _shadowColor = shadowColor; + _cachedShadowUIColor = [UIColor colorWithCGColor:shadowColor]; [self _invalidateRenderer]; [self setNeedsDisplay]; }