CAShapeLayer不可见

时间:2016-08-03 20:16:37

标签: ios objective-c iphone swift cocoa-touch

我有一个UIView的子类连接到XIB的{​​{1}}文件。

我使用UIViewController将我的PocketSVG文件转换为SVG,就像那样:

CGPath

问题是,当我运行应用程序时,我看不到任何内容,该图层不可见。

我现在做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

根据您为CGPathGetPathBoundingBox报告的内容,您可能希望转换路径,使其落在窗口的可见部分内。

例如,如果您想要翻译并缩放它以使其适合视图:

let insetRect = CGRectInset(bounds, lineWidth / 2.0, lineWidth / 2.0)
let boundingRect = CGPathGetPathBoundingBox(myPath)
let scale = min(insetRect.size.height / boundingRect.size.height, insetRect.size.width / boundingRect.size.width)
var transform = CGAffineTransformScale(CGAffineTransformMakeTranslation(-boundingRect.origin.x * scale + insetRect.origin.x, -boundingRect.origin.y * scale + insetRect.origin.y), scale, scale)

let transformedPath = CGPathCreateMutableCopyByTransformingPath(myPath, &transform)

这个想法有很多排列,但希望它说明了这个概念。