gpt4 book ai didi

ios - CAShapeLayer 不可见

转载 作者:行者123 更新时间:2023-11-28 12:43:33 26 4
gpt4 key购买 nike

我有一个 UIView 的子类连接到 UIViewControllerXIB 文件。

我正在使用 PocketSVG 将我的 SVG 文件转换为 CGPath,如下所示:

override func awakeFromNib() {
let myPath = PocketSVG.pathFromSVGFileNamed("").takeUnretainedValue()

let myShapeLayer = CAShapeLayer()
myShapeLayer.path = myPath

myShapeLayer.strokeColor = UIColor.redColor().CGColor
myShapeLayer.lineWidth = 3
myShapeLayer.fillColor = UIColor.whiteColor().CGColor

self.layer.addSublayer(myShapeLayer)
}

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

我现在做错了什么?

谢谢!

最佳答案

鉴于您为 CGPathGetPathBoundingBox 报告的内容,您可能想要转换路径,使其落在窗口的可见部分内。

例如,如果您想平移和缩放它以使其适合 View :

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)

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

关于ios - CAShapeLayer 不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38752862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com