diff --git a/.npmignore b/.npmignore index 7cc1216b..0a057bd7 100644 --- a/.npmignore +++ b/.npmignore @@ -1,3 +1,5 @@ node_modules/ .idea/ Example/ +experimental/ +android/build/ diff --git a/README.md b/README.md index a6a72959..353a76c4 100644 --- a/README.md +++ b/README.md @@ -604,14 +604,12 @@ npm i ### TODO: 1. Add Native method for elements. 2. Pattern element. -3. Implement Animated elements. -4. Mask element. -5. Load Image from URL. -6. Fix rotate prop on Text +3. Mask element. +4. Load Image from URL. +5. Transform prop support. ### Known issues: -1. Unable to set alpha channel for Gradient on iOS. -2. Unable to apply focus point of RadialGradient on Android. +1. Unable to apply focus point of RadialGradient on Android. ### Thanks: diff --git a/ios/RNSVGRenderable.m b/ios/RNSVGRenderable.m index b8f758e6..f17046f5 100644 --- a/ios/RNSVGRenderable.m +++ b/ios/RNSVGRenderable.m @@ -176,15 +176,17 @@ return; } + CGPathDrawingMode mode = kCGPathStroke; - BOOL fillColor = YES; + BOOL fillColor = NO; [self clip:context]; if (self.fill) { - mode = _fillEvenodd ? kCGPathEOFill : kCGPathFill; fillColor = [self.fill applyFillColor:context opacity:self.fillOpacity]; - if (!fillColor) { + if (fillColor) { + mode = _fillEvenodd ? kCGPathEOFill : kCGPathFill; + } else { CGContextSaveGState(context); CGContextAddPath(context, path); CGContextClip(context); @@ -216,10 +218,16 @@ CGContextClip(context); } - if (![self.stroke applyStrokeColor:context opacity:self.strokeOpacity]) { + BOOL strokeColor = [self.stroke applyStrokeColor:context opacity:self.strokeOpacity]; + + if (strokeColor && fillColor) { + mode = _fillEvenodd ? kCGPathEOFillStroke : kCGPathFillStroke; + } else if (!strokeColor) { // draw fill - CGContextAddPath(context, path); - CGContextDrawPath(context, mode); + if (fillColor) { + CGContextAddPath(context, path); + CGContextDrawPath(context, mode); + } // draw stroke CGContextAddPath(context, path); @@ -229,10 +237,8 @@ [self.stroke paint:context opacity:self.strokeOpacity brushConverter:[[self getSvgView] getDefinedBrushConverter:self.stroke.brushRef] - ]; + ]; return; - } else if (self.fill) { - mode = _fillEvenodd ? kCGPathEOFillStroke : kCGPathFillStroke; } }