Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios CGContextDraw Swift中的径向梯度_Ios_Xcode_Swift - Fatal编程技术网

Ios CGContextDraw Swift中的径向梯度

Ios CGContextDraw Swift中的径向梯度,ios,xcode,swift,Ios,Xcode,Swift,我试图画一个渐变点,但是CGGradientCreateWithColor总是返回零。 我不熟悉Swift和Objective C(从今天开始,但使用Xamarin制作了一些应用程序)。 请任何人解释一下下面的代码有什么问题吗 func initFields(){ var startColor = UIColor.blueColor().CGColor var endColor = UIColor.greenColor().CGColor var colors: CFAr

我试图画一个渐变点,但是CGGradientCreateWithColor总是返回零。 我不熟悉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)
}

CGGradientCreateWithColor()
文档中:

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

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

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

同样奇怪的是,起始圆和结束圆是相同的
在您的代码中。

谢谢。这对获得梯度很有帮助。我也更改了它的结束位置。但它没有画任何东西,这就是我要做的全部吗?开始ImageContext并调用Draw函数?@NormanSchütt:
UIGraphicsBeginImageContext
用于绘制位图(示例:)-对于UIView子类中的自定义图形,可以实现
drawRect: