【发布时间】:2014-10-26 23:45:42
【问题描述】:
我正在使用PaintCode 将一组我必须使用的 SVG 转换为 Swift 代码。看起来它只是将 SVG 路径转换为 UIBezierPath()s,这很棒。
要显示生成的代码,我正在执行以下操作:
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,效果很好。我现在想知道的是,我怎样才能以更小(或更大的尺寸)显示相同的图形 - 因为它们是贝塞尔路径,它们应该可以很好地缩放,对吗?将我的视图框架设置为CGRectMake(15, 15, 20, 20)(对于所需的 20x20 图像)似乎只是剪裁了图形。
如何确保在我的视图中绘制的任何图形的大小都适合视图的框架?
谢谢
【问题讨论】:
标签: svg uiview swift core-graphics uibezierpath