为什么我不能用自定义UIColor填充UIBezierPath?

时间:2016-06-12 20:20:39

标签: ios swift

我想用自定义颜色填充UIBezierPath,但只有UIColor.redColorUIColor.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()
}

1 个答案:

答案 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,因此一起形成白色,您可能没有看到填充任何内容。