summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNadia Barbosa <captainbarbosa@users.noreply.github.com>2018-02-06 15:39:31 -0500
committerNadia Barbosa <captainbarbosa@users.noreply.github.com>2018-02-06 15:39:31 -0500
commit6fcdf33545ca260d194a3845f6437d54ececfb0c (patch)
tree06da56284abf9acb4798880d291c2bfc1313fe36
parente5cc2bc8bd4b63ed802f07ea3fb6a794686e1bd9 (diff)
downloadqtlocation-mapboxgl-6fcdf33545ca260d194a3845f6437d54ececfb0c.tar.gz
Add setters to pin annotation properties to force redraw
-rw-r--r--platform/ios/src/MGLPinAnnotationView.m64
1 files changed, 44 insertions, 20 deletions
diff --git a/platform/ios/src/MGLPinAnnotationView.m b/platform/ios/src/MGLPinAnnotationView.m
index cfeff1e5cd..68aebc78f9 100644
--- a/platform/ios/src/MGLPinAnnotationView.m
+++ b/platform/ios/src/MGLPinAnnotationView.m
@@ -8,12 +8,37 @@
_pinColor = [UIColor blueColor];
_strokeColor = [UIColor whiteColor];
_innerColor = [UIColor whiteColor];
+ self.backgroundColor = [UIColor clearColor];
return self;
}
- (void)drawRect:(CGRect)rect {
-
+ [self drawMarkerWithFrame:rect innerColor:_innerColor shadowColor:_shadowColor pinColor:_pinColor strokeColor:_strokeColor];
+}
+
+- (void)setShadowColor:(UIColor *)shadowColor {
+ _shadowColor = shadowColor;
+ [self setNeedsDisplay];
+}
+
+- (void)setPinColor:(UIColor *)pinColor {
+ _pinColor = pinColor;
+ [self setNeedsDisplay];
+}
+
+- (void)setStrokeColor:(UIColor *)strokeColor {
+ _strokeColor = strokeColor;
+ [self setNeedsDisplay];
+}
+
+- (void)setInnerColor:(UIColor *)innerColor {
+ _innerColor = innerColor;
+ [self setNeedsDisplay];
+}
+
+- (void)drawMarkerWithFrame:(CGRect)frame innerColor:(UIColor*)innerColor shadowColor:(UIColor*)shadowColor pinColor:(UIColor*)pinColor strokeColor:(UIColor*)strokeColor
+{
//// General Declarations
CGContextRef context = UIGraphicsGetCurrentContext();
@@ -23,8 +48,8 @@
CGContextSaveGState(context);
CGContextSetAlpha(context, 0.1);
- UIBezierPath* oval2Path = [UIBezierPath bezierPathWithOvalInRect: CGRectMake(10, 40.61, 19, 8)];
- [self.shadowColor setFill];
+ UIBezierPath* oval2Path = [UIBezierPath bezierPathWithOvalInRect: CGRectMake(CGRectGetMinX(frame) + 10, CGRectGetMinY(frame) + 40.61, 19, 8)];
+ [shadowColor setFill];
[oval2Path fill];
CGContextRestoreGState(context);
@@ -34,39 +59,38 @@
{
//// Bezier 2 Drawing
UIBezierPath* bezier2Path = [UIBezierPath bezierPath];
- [bezier2Path moveToPoint: CGPointMake(18.04, 43.43)];
- [bezier2Path addCurveToPoint: CGPointMake(20.96, 43.43) controlPoint1: CGPointMake(18.85, 44.18) controlPoint2: CGPointMake(20.16, 44.17)];
- [bezier2Path addCurveToPoint: CGPointMake(37, 19.55) controlPoint1: CGPointMake(20.96, 43.43) controlPoint2: CGPointMake(37, 29.24)];
- [bezier2Path addCurveToPoint: CGPointMake(19.5, 2) controlPoint1: CGPointMake(37, 9.86) controlPoint2: CGPointMake(29.16, 2)];
- [bezier2Path addCurveToPoint: CGPointMake(2, 19.55) controlPoint1: CGPointMake(9.84, 2) controlPoint2: CGPointMake(2, 9.86)];
- [bezier2Path addCurveToPoint: CGPointMake(18.04, 43.43) controlPoint1: CGPointMake(2, 29.24) controlPoint2: CGPointMake(18.04, 43.43)];
+ [bezier2Path moveToPoint: CGPointMake(CGRectGetMinX(frame) + 18.04, CGRectGetMinY(frame) + 43.43)];
+ [bezier2Path addCurveToPoint: CGPointMake(CGRectGetMinX(frame) + 20.96, CGRectGetMinY(frame) + 43.43) controlPoint1: CGPointMake(CGRectGetMinX(frame) + 18.85, CGRectGetMinY(frame) + 44.18) controlPoint2: CGPointMake(CGRectGetMinX(frame) + 20.16, CGRectGetMinY(frame) + 44.17)];
+ [bezier2Path addCurveToPoint: CGPointMake(CGRectGetMinX(frame) + 37, CGRectGetMinY(frame) + 19.55) controlPoint1: CGPointMake(CGRectGetMinX(frame) + 20.96, CGRectGetMinY(frame) + 43.43) controlPoint2: CGPointMake(CGRectGetMinX(frame) + 37, CGRectGetMinY(frame) + 29.24)];
+ [bezier2Path addCurveToPoint: CGPointMake(CGRectGetMinX(frame) + 19.5, CGRectGetMinY(frame) + 2) controlPoint1: CGPointMake(CGRectGetMinX(frame) + 37, CGRectGetMinY(frame) + 9.86) controlPoint2: CGPointMake(CGRectGetMinX(frame) + 29.16, CGRectGetMinY(frame) + 2)];
+ [bezier2Path addCurveToPoint: CGPointMake(CGRectGetMinX(frame) + 2, CGRectGetMinY(frame) + 19.55) controlPoint1: CGPointMake(CGRectGetMinX(frame) + 9.84, CGRectGetMinY(frame) + 2) controlPoint2: CGPointMake(CGRectGetMinX(frame) + 2, CGRectGetMinY(frame) + 9.86)];
+ [bezier2Path addCurveToPoint: CGPointMake(CGRectGetMinX(frame) + 18.04, CGRectGetMinY(frame) + 43.43) controlPoint1: CGPointMake(CGRectGetMinX(frame) + 2, CGRectGetMinY(frame) + 29.24) controlPoint2: CGPointMake(CGRectGetMinX(frame) + 18.04, CGRectGetMinY(frame) + 43.43)];
[bezier2Path closePath];
bezier2Path.usesEvenOddFillRule = YES;
- [self.pinColor setFill];
+ [pinColor setFill];
[bezier2Path fill];
//// Bezier 3 Drawing
UIBezierPath* bezier3Path = [UIBezierPath bezierPath];
- [bezier3Path moveToPoint: CGPointMake(18.04, 43.43)];
- [bezier3Path addCurveToPoint: CGPointMake(20.96, 43.43) controlPoint1: CGPointMake(18.85, 44.18) controlPoint2: CGPointMake(20.16, 44.17)];
- [bezier3Path addCurveToPoint: CGPointMake(37, 19.55) controlPoint1: CGPointMake(20.96, 43.43) controlPoint2: CGPointMake(37, 29.24)];
- [bezier3Path addCurveToPoint: CGPointMake(19.5, 2) controlPoint1: CGPointMake(37, 9.86) controlPoint2: CGPointMake(29.16, 2)];
- [bezier3Path addCurveToPoint: CGPointMake(2, 19.55) controlPoint1: CGPointMake(9.84, 2) controlPoint2: CGPointMake(2, 9.86)];
- [bezier3Path addCurveToPoint: CGPointMake(18.04, 43.43) controlPoint1: CGPointMake(2, 29.24) controlPoint2: CGPointMake(18.04, 43.43)];
+ [bezier3Path moveToPoint: CGPointMake(CGRectGetMinX(frame) + 18.04, CGRectGetMinY(frame) + 43.43)];
+ [bezier3Path addCurveToPoint: CGPointMake(CGRectGetMinX(frame) + 20.96, CGRectGetMinY(frame) + 43.43) controlPoint1: CGPointMake(CGRectGetMinX(frame) + 18.85, CGRectGetMinY(frame) + 44.18) controlPoint2: CGPointMake(CGRectGetMinX(frame) + 20.16, CGRectGetMinY(frame) + 44.17)];
+ [bezier3Path addCurveToPoint: CGPointMake(CGRectGetMinX(frame) + 37, CGRectGetMinY(frame) + 19.55) controlPoint1: CGPointMake(CGRectGetMinX(frame) + 20.96, CGRectGetMinY(frame) + 43.43) controlPoint2: CGPointMake(CGRectGetMinX(frame) + 37, CGRectGetMinY(frame) + 29.24)];
+ [bezier3Path addCurveToPoint: CGPointMake(CGRectGetMinX(frame) + 19.5, CGRectGetMinY(frame) + 2) controlPoint1: CGPointMake(CGRectGetMinX(frame) + 37, CGRectGetMinY(frame) + 9.86) controlPoint2: CGPointMake(CGRectGetMinX(frame) + 29.16, CGRectGetMinY(frame) + 2)];
+ [bezier3Path addCurveToPoint: CGPointMake(CGRectGetMinX(frame) + 2, CGRectGetMinY(frame) + 19.55) controlPoint1: CGPointMake(CGRectGetMinX(frame) + 9.84, CGRectGetMinY(frame) + 2) controlPoint2: CGPointMake(CGRectGetMinX(frame) + 2, CGRectGetMinY(frame) + 9.86)];
+ [bezier3Path addCurveToPoint: CGPointMake(CGRectGetMinX(frame) + 18.04, CGRectGetMinY(frame) + 43.43) controlPoint1: CGPointMake(CGRectGetMinX(frame) + 2, CGRectGetMinY(frame) + 29.24) controlPoint2: CGPointMake(CGRectGetMinX(frame) + 18.04, CGRectGetMinY(frame) + 43.43)];
[bezier3Path closePath];
- [self.strokeColor setStroke];
+ [strokeColor setStroke];
bezier3Path.lineWidth = 3;
[bezier3Path stroke];
//// Oval Drawing
- UIBezierPath* ovalPath = [UIBezierPath bezierPathWithOvalInRect: CGRectMake(12.5, 12.16, 14, 14)];
- [self.innerColor setFill];
+ UIBezierPath* ovalPath = [UIBezierPath bezierPathWithOvalInRect: CGRectMake(CGRectGetMinX(frame) + 12.5, CGRectGetMinY(frame) + 12.16, 14, 14)];
+ [innerColor setFill];
[ovalPath fill];
}
}
-
}
@end