我试图画一个渐变点,但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)
}
答案 0 :(得分:1)
来自CGGradientCreateWithColors()
文档:
...每个位置必须是0到1(包括0和1)范围内的CGFloat值。
在创建渐变时,将[0, 10]
更改为[0, 1]
。
位置0处的颜色映射到起始圆和位置1处的颜色 被映射到结束圆圈。
起始圆和结束圆也是相同的,这似乎很奇怪 在你的代码中。