我创建了一个大小的UIGraphicsImageRenderer但是我得到了一个不同大小的cgImage?
let string = NSAttributedString(string:“0”,attributes:attributeDict)let size = string.size()print(size)let traitCollection = UITraitCollection(displayScale:1.0)let rendererFormat = UIGraphicsImageRendererFormat(for:traitCollection)
let renderer = UIGraphicsImageRenderer(bounds: CGRect(origin: .zero, size: size), format: rendererFormat)
let im = renderer.image{ (context) in
UIColor.black.setStroke()
let element = CGFloat(grayShade)/CGFloat(255)
let color = UIColor(red: element, green: element, blue: element, alpha: 1)
print(color)
color.setFill()
context.stroke(renderer.format.bounds)
context.fill(renderer.format.bounds)
let rect = context.format.bounds
print(rect)
string.draw(in: rect)
}
let cg = im.cgImage
return cg!
UIGraphicsImageRenderer
具有与之关联的比例,用于确定您创建它的大小(以点为单位)如何转换为实际像素。默认情况下,此刻度与主显示的刻度相同。
您可以通过使用不同的格式初始化渲染器来更改比例:
let traitCollection = UITraitCollection(displayScale: 1.0)
let rendererFormat = UIGraphicsImageRendererFormat(for: traitCollection)
let renderer = UIGraphicsImageRenderer(bounds: CGRect(origin: .zero, size: size), format: rendererFormat)