gpt4 book ai didi

svg - 调整 PaintCode 生成的路径大小

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

我正在使用 PaintCode将我必须使用的一组 SVG 转换为 Swift 代码。看起来它只是将 SVG 路径转换为 ​​UIBezierPath(),这很棒。

为了显示生成的代码,我正在执行以下操作:

class FirstImageView: UIView {

init(name: String) { // Irrelevant custom init
super.init(frame: CGRectMake(15, 15, 40, 40)) // 40x40 View
self.opaque = false // Transparent background
}

override func drawRect(rect: CGRect) {
ImagesCollection.firstImage() // Fill the view with this image
}

required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}

}

ImagesCollection.firstImage() 引用的地方:

public class ImagesCollection: NSObject {

public class func firstImage() {
let color4 = UIColor(red: 0.595, green: 0.080, blue: 0.125, alpha: 1.000)
var fill295Path = UIBezierPath()
fill295Path.moveToPoint(CGPointMake(27.5, 2.73))
// Rest of generated graphics code
}

}

效果很好 - 我生成了 40x40 的图形,将框架设置为 40x40,效果很好。我现在想知道的是,我怎样才能以更小(或更大)的尺寸显示相同的图形——因为它们是贝塞尔曲线路径,所以它们应该可以很好地缩放,对吧?将我的 View 的框架设置为 CGRectMake(15, 15, 20, 20)(对于所需的 20x20 图像)似乎只是剪裁图形。

如何确保绘制到我的 View 中的任何图形的大小都适合 View 的框架?

谢谢

最佳答案

您可以使用 CGAffineTransform 来缩放您的自定义 View 或贝塞尔曲线路径本身。

  1. 缩放 View :

    myFirstImageView.transform = CGAffineTransformMakeScale(0.5, 0.5)
  2. 缩放贝塞尔路径:

    // ...
    // lots of generated graphics code
    fill295Path.applyTransform(CGAffineTransformMakeScale(0.5, 0.5))
    fill295Path.stroke() // or fill, etc.

关于svg - 调整 PaintCode 生成的路径大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26579301/

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