Ios CGContextDraw Swift中的径向梯度
我试图画一个渐变点,但是CGGradientCreateWithColor总是返回零。 我不熟悉Swift和Objective C(从今天开始,但使用Xamarin制作了一些应用程序)。 请任何人解释一下下面的代码有什么问题吗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
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:
。