我有一条bezier路径,我将其转换为CALayer,然后添加到视图中。
我希望UIView的高度和宽度完全是CALayer形状。
myHTML = @"<html><body><svg height= \"400\" width= \"400\"><g><path d=\"M 20 20 C 30 30 40 40 50 50 M 50 50 C 60 70 80 70 60 50 \" transform=\"translate(-20, -20)\" stroke = \"#000000\" fill=\"none\" stroke-width=\"5px\"></path></g></svg></body></html>";
NSArray *test = [SVGBezierPath pathsFromSVGString:myHTML];
for(SVGBezierPath *path in test) {
// Create a layer for each path
CAShapeLayer *layer = [CAShapeLayer layer];
layer.path = path.CGPath;
UIView *vw = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
// Set its display properties
layer.lineWidth = 4;
layer.strokeColor = [[UIColor blackColor] CGColor];
layer.fillColor = [[UIColor clearColor] CGColor];
vw.center = self.view.center;
[vw setBackgroundColor:[UIColor grayColor]];
// Add it to the layer hierarchy
[vw.layer addSublayer:layer];
[self.view addSubview:vw];
}
我尝试过查看图层的宽度和高度
vw = [[UIView alloc]initWithFrame:CGRectMake(vw.bounds.origin.x, vw.bounds.origin.y, layer.bounds.size.height, layer.bounds.size.width)];
然后视图消失,只有图层可见。
我希望得到类似下面图片的内容,我有调整大小视图和事物的代码,但需要让视图的边界正好是视图的最大高度和最大宽度,如下所示。
答案 0 :(得分:0)
尝试将视图框设置为路径边界框。假设SVGBezierPath是UIBezierPath的子类。
context