我想用自定义颜色填充UIBezierPath
,但只有UIColor.redColor
或UIColor.blueColor
这样的默认颜色才有效。
这是我的代码:
override func drawRect(rect: CGRect) {
let layerHeight = self.layer.frame.height
let layerWidth = self.layer.frame.width
let width:CGFloat = 50
let bezierPath = UIBezierPath()
bezierPath.moveToPoint(CGPointMake(layerWidth, layerHeight))
bezierPath.addLineToPoint(CGPointMake(layerWidth, layerHeight - width))
bezierPath.addLineToPoint(CGPointMake(layerWidth - width, layerHeight))
bezierPath.closePath()
// UIColor.blueColor().setFill() works, but a custom color does not:
UIColor(colorLiteralRed: 23, green: 34, blue: 200, alpha: 1).setFill()
bezierPath.fill()
}
答案 0 :(得分:1)
您使用的是错误的值。 The color values have to be in range 0.0 - 1.0:
UIColor(colorLiteralRed: 0.2, green: 0.3, blue: 0.9, alpha: 1)
我建议使用稍微不同的初始化程序:
UIColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 1.0)
之前在您的代码中发生的事情是1.0以上的所有值都被视为1.0,因此一起形成白色,您可能没有看到填充任何内容。