Open davamp opened 6 years ago
(void)loadMap:(NSString)mapName withColors:(NSDictionary)colorsDict { _svg = [FSSVG svgWithFile:mapName];
for (FSSVGPathElement* path in _svg.paths) { // Make the map fits inside the frame float scaleHorizontal = self.frame.size.width / _svg.bounds.size.width; float scaleVertical = self.frame.size.height / _svg.bounds.size.height; float scale = MIN(scaleHorizontal, scaleVertical);
CGAffineTransform scaleTransform = CGAffineTransformIdentity; scaleTransform = CGAffineTransformMakeScale(scale, scale); scaleTransform = CGAffineTransformTranslate(scaleTransform,-_svg.bounds.origin.x, -_svg.bounds.origin.y); UIBezierPath* scaled = [path.path copy]; [scaled applyTransform:scaleTransform]; CAShapeLayer *shapeLayer = [CAShapeLayer layer]; shapeLayer.path = scaled.CGPath; // Setting CAShapeLayer properties shapeLayer.strokeColor = self.strokeColor.CGColor; shapeLayer.lineWidth = 0.5; if(path.fill) { if(colorsDict && [colorsDict objectForKey:path.identifier]) { UIColor* color = [colorsDict objectForKey:path.identifier]; shapeLayer.fillColor = color.CGColor; } else { shapeLayer.fillColor = self.fillColor.CGColor; } } else { shapeLayer.fillColor = [[UIColor clearColor] CGColor]; } CATextLayer* text = [CATextLayer new]; text.string = [NSString stringWithFormat:@"%@", path.identifier]; //text.font = (__bridge CFTypeRef _Nullable)([UIFont fontWithName:@"akaChen" size:42]); text.font = (__bridge CFTypeRef _Nullable)([UIFont boldSystemFontOfSize:7]); text.fontSize = 7; text.frame = CGRectMake((CGRectGetMidX(scaled.bounds) - scaled.bounds.size.width/4 ),CGRectGetMidY(scaled.bounds),scaled.bounds.size.width,scaled.bounds.size.height); // text.position = CGPointMake(CGRectGetMidX(scaled.bounds) ,CGRectGetMidY(scaled.bounds) );
// CGFloat vert = CGRectGetMidY(scaled.bounds) / CGRectGetHeight(scaled.bounds);
// text.anchorPoint = CGPointMake(0.5, vert ); // text.alignmentMode = kCAAlignmentCenter; text.foregroundColor = [[UIColor blackColor] CGColor];
[shapeLayer addSublayer:text]; [self.layer addSublayer:shapeLayer]; [_scaledPaths addObject:scaled]; }
}
(void)loadMap:(NSString)mapName withColors:(NSDictionary)colorsDict { _svg = [FSSVG svgWithFile:mapName];
for (FSSVGPathElement* path in _svg.paths) { // Make the map fits inside the frame float scaleHorizontal = self.frame.size.width / _svg.bounds.size.width; float scaleVertical = self.frame.size.height / _svg.bounds.size.height; float scale = MIN(scaleHorizontal, scaleVertical);
// CGFloat vert = CGRectGetMidY(scaled.bounds) / CGRectGetHeight(scaled.bounds);
// text.anchorPoint = CGPointMake(0.5, vert ); // text.alignmentMode = kCAAlignmentCenter; text.foregroundColor = [[UIColor blackColor] CGColor];
}