@@ -138,7 +138,8 @@ - (void)draw {
138138 self.drawLayer .masksToBounds = true ;
139139 NSMutableDictionary *tempHostLayers = [NSMutableDictionary dictionary ];
140140 NSMutableArray *tempContentLayers = [NSMutableArray array ];
141- for (SVGAVideoSpriteEntity * sprite in self.videoItem .sprites ) {
141+
142+ [self .videoItem.sprites enumerateObjectsUsingBlock: ^(SVGAVideoSpriteEntity * _Nonnull sprite, NSUInteger idx, BOOL * _Nonnull stop) {
142143 UIImage *bitmap;
143144 if (sprite.imageKey != nil ) {
144145 if (self.dynamicObjects [sprite.imageKey] != nil ) {
@@ -153,14 +154,15 @@ - (void)draw {
153154 [tempContentLayers addObject: contentLayer];
154155 if ([sprite.imageKey hasSuffix: @" .matte" ]) {
155156 CALayer *hostLayer = [[CALayer alloc ] init ];
156- hostLayer.frame = contentLayer.frame ;
157157 hostLayer.mask = contentLayer;
158- [self .drawLayer addSublayer: hostLayer];
159158 tempHostLayers[sprite.imageKey] = hostLayer;
160159 } else {
161160 if (sprite.matteKey && sprite.matteKey .length > 0 ) {
162161 CALayer *hostLayer = tempHostLayers[sprite.matteKey];
163162 [hostLayer addSublayer: contentLayer];
163+ if (![sprite.matteKey isEqualToString: self .videoItem.sprites[idx - 1 ].matteKey]) {
164+ [self .drawLayer addSublayer: hostLayer];
165+ }
164166 } else {
165167 [self .drawLayer addSublayer: contentLayer];
166168 }
@@ -184,7 +186,7 @@ - (void)draw {
184186 contentLayer.dynamicDrawingBlock = self.dynamicDrawings [sprite.imageKey];
185187 }
186188 }
187- }
189+ }];
188190 _contentLayers = tempContentLayers;
189191
190192 [self .layer addSublayer: self .drawLayer];
0 commit comments