mirror of
https://github.com/zoriya/react-native-svg.git
synced 2026-05-26 04:19:17 +00:00
Fix stroke render on iOS
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
node_modules/
|
||||
.idea/
|
||||
Example/
|
||||
experimental/
|
||||
android/build/
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
+15
-9
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user