我有SVG文件,并且能够使用SVGKit
.
现在,我有CAShapeLayer
可能包含圆形、方形或任何闭合形状。
我想以这样的方式添加CATextLayer
文本CAShapeLayer
不应该跨越定义的形状。
这是穿越的CATextLayer
示例CAShapeLayer
:
它的交叉只是因为CATextLayer
从 0 位置开始,CAShapeLayer
其中包含圆,特别是在这种情况下。
就我而言,CAShapeLayer
可以包含任何封闭的形状。它也可以是椭圆形的。
如何识别里面的形状CAShapeLayer
?或如何应用路径CATextLayer
?这将确保文本将绘制在形状内?
这是添加CATextLayer
On的代码CAShapeLayer
:
-(CATextLayer *)addTrackerNumberToLayer:(NSString *)numbers{
self.numbersTextLayer = [CATextLayer new];
self.numbersTextLayer.foregroundColor = [UIColor blackColor].CGColor;
self.numbersTextLayer.font = (__bridge CFTypeRef _Nullable)([UIFont boldSystemFontOfSize:15]);
self.numbersTextLayer.fontSize=25;
self.numbersTextLayer.anchorPoint = CGPointZero;
self.numbersTextLayer.frame = CGRectMake(self.parentShapeLayer.bounds.size.width*0.05, self.parentShapeLayer.bounds.size.height*0.05, self.parentShapeLayer.bounds.size.width*0.90, self.parentShapeLayer.bounds.size.height*0.30);
self.numbersTextLayer.position = CGPointMake(self.parentShapeLayer.bounds.size.width*0.05,self.parentShapeLayer.bounds.size.height*0.05);
self.numbersTextLayer.alignmentMode = kCAAlignmentCenter;
[self.parentShapeLayer addSublayer:self.numbersTextLayer];
}