如何在CGGradient中舒服地使用NSArray中的CGColor
我有两个UIColor实例,并希望使用它们创build一个渐变。 该代码的作品,但它给了我一个警告,当我调用arrayWithObject:
构造函数:
警告:语义问题:将'CGColorRef'(又名'struct CGColor *')发送到types为“id”的参数的指针types不兼容
我怀疑有潜在的其他问题有关的警告(例如泄漏)。 这里是片段:
UIColor *startColor, *endColor; // ... NSArray *colors = [NSArray arrayWithObjects: startColor.CGColor, endColor.CGColor, nil]; CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef) colors, NULL);
如何重写代码以安全的方式摆脱这个警告?
- 我试图手动创build一个CGArrayRef,但一段时间后,有点讨厌。
- CGGradientCreateWithColorComponents的作品,但我不喜欢手动合并所有的颜色组件到一个
CGFloat components[]
尝试这个
UIColor *startColor, *endColor; // ... NSArray *colors = [NSArray arrayWithObjects: (id)startColor.CGColor, (id)endColor.CGColor, nil]; CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef) colors, NULL);