From d40e390fbe6d7ef3b417876af6fdce5e4d2aa335 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 11 Jun 2019 19:10:23 +0200 Subject: [PATCH] Respect hidden property on strokes --- lottie-ios/Classes/Models/LOTShapeStroke.h | 1 + lottie-ios/Classes/Models/LOTShapeStroke.m | 5 +++++ .../Classes/RenderSystem/RenderNodes/LOTRenderGroup.m | 9 ++++++--- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lottie-ios/Classes/Models/LOTShapeStroke.h b/lottie-ios/Classes/Models/LOTShapeStroke.h index 2d1ae6ae58..2a05163730 100644 --- a/lottie-ios/Classes/Models/LOTShapeStroke.h +++ b/lottie-ios/Classes/Models/LOTShapeStroke.h @@ -27,6 +27,7 @@ typedef enum : NSUInteger { @property (nonatomic, readonly) NSString *keyname; @property (nonatomic, readonly) BOOL fillEnabled; +@property (nonatomic, readonly) BOOL hidden; @property (nonatomic, readonly) LOTKeyframeGroup *color; @property (nonatomic, readonly) LOTKeyframeGroup *opacity; @property (nonatomic, readonly) LOTKeyframeGroup *width; diff --git a/lottie-ios/Classes/Models/LOTShapeStroke.m b/lottie-ios/Classes/Models/LOTShapeStroke.m index 27ff5447b5..071a675f44 100644 --- a/lottie-ios/Classes/Models/LOTShapeStroke.m +++ b/lottie-ios/Classes/Models/LOTShapeStroke.m @@ -42,6 +42,11 @@ return LOT_RemapValue(inValue, 0, 100, 0, 1); }]; } + + NSNumber *hidden = jsonDictionary[@"hd"]; + if (hidden.boolValue) { + _hidden = true; + } _capType = [jsonDictionary[@"lc"] integerValue] - 1; _joinType = [jsonDictionary[@"lj"] integerValue] - 1; diff --git a/lottie-ios/Classes/RenderSystem/RenderNodes/LOTRenderGroup.m b/lottie-ios/Classes/RenderSystem/RenderNodes/LOTRenderGroup.m index e1c78fd2f5..7784190d74 100644 --- a/lottie-ios/Classes/RenderSystem/RenderNodes/LOTRenderGroup.m +++ b/lottie-ios/Classes/RenderSystem/RenderNodes/LOTRenderGroup.m @@ -74,10 +74,13 @@ [self.containerLayer insertSublayer:fillRenderer.outputLayer atIndex:0]; previousNode = fillRenderer; } else if ([item isKindOfClass:[LOTShapeStroke class]]) { - LOTStrokeRenderer *strokRenderer = [[LOTStrokeRenderer alloc] initWithInputNode:previousNode + if (((LOTShapeStroke *)item).hidden) { + continue; + } + LOTStrokeRenderer *strokeRenderer = [[LOTStrokeRenderer alloc] initWithInputNode:previousNode shapeStroke:(LOTShapeStroke *)item]; - [self.containerLayer insertSublayer:strokRenderer.outputLayer atIndex:0]; - previousNode = strokRenderer; + [self.containerLayer insertSublayer:strokeRenderer.outputLayer atIndex:0]; + previousNode = strokeRenderer; } else if ([item isKindOfClass:[LOTShapePath class]]) { LOTPathAnimator *pathAnimator = [[LOTPathAnimator alloc] initWithInputNode:previousNode shapePath:(LOTShapePath *)item];