Swift中的CGContextDrawRadialGradient

时间:2014-07-03 19:20:40

标签: ios xcode swift

我试图画一个渐变点,但CGGradientCreateWithColors总是返回nil。 我是Swift和Objective C的新手(从今天开始,但是用Xamarin制作了一些应用程序)。 可以请任何人解释以下代码有什么问题吗?

func initFields(){
    var startColor = UIColor.blueColor().CGColor
    var endColor = UIColor.greenColor().CGColor
    var colors: CFArray = [startColor, endColor]

    Gradient = CGGradientCreateWithColors(CGColorSpaceCreateDeviceRGB(), colors, [0, 10])
}
func DrawSomething(){
    UIGraphicsBeginImageContext(frame.size)
    CGContextDrawRadialGradient(UIGraphicsGetCurrentContext(), Gradient!, TouchLocation!, 10, TouchLocation!, 10, 0)
}

1 个答案:

答案 0 :(得分:1)

来自CGGradientCreateWithColors()文档:

  

...每个位置必须是0到1(包括0和1)范围内的CGFloat值。

在创建渐变时,将[0, 10]更改为[0, 1]

位置0处的颜色映射到起始圆和位置1处的颜色 被映射到结束圆圈。

起始圆和结束圆也是相同的,这似乎很奇怪 在你的代码中。