如何创建三角形UIImage?以下是我现在正在做的事情,但它根本没有生成任何图像。如何创建三角形UIImage
extension UIImage {
static func triangle(side: CGFloat, color: UIColor)->UIImage {
UIGraphicsBeginImageContextWithOptions(CGSize(width: side, height: side), false, 0)
let ctx = UIGraphicsGetCurrentContext()!
ctx.saveGState()
ctx.beginPath()
ctx.move(to: CGPoint(x: side/2, y: 0))
ctx.move(to: CGPoint(x: side, y: side))
ctx.move(to: CGPoint(x: 0, y: side))
ctx.move(to: CGPoint(x: side/2, y: 0))
ctx.closePath()
ctx.setFillColor(color.cgColor)
ctx.restoreGState()
let img = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return img
}
}
但是,三角形的两个底点之间的界限呢? - 看起来并不像它那里添加的那样 – shoe
@shoe - 这就是'closePath'所做的,完成回到你开始它的路径。 – Rob
@Rob,但画了一条线回到我开始的地方,它不会关闭三角形。似乎缺少的是三角形的“基础”。这里是我如何解释代码 - 让我知道如果我错了 - 路径开始,我们移动到三角形的顶部,从那里添加一条线到三角形的正确点。然后,仍然在三角形的顶部,我们从顶部到左侧添加另一条线,然后关闭路径。它看起来像'closePath()'自动在三角形的两个底点之间添加一条线。这是怎么回事? – shoe