gpt4 book ai didi

iphone - 我如何在带有 CGGradient 的 NSArray 中舒适地使用 CGColor

转载 作者:技术小花猫 更新时间:2023-10-29 11:11:56 27 4
gpt4 key购买 nike

我有两个 UIColor 实例,想用它们创建渐变。代码有效,但是当我调用 arrayWithObject: 构造函数时它给了我一个警告:

warning: Semantic Issue: Incompatible pointer types sending 'CGColorRef' (aka 'struct CGColor *') to parameter of type 'id'

我怀疑还有其他与警告相关的问题(例如泄漏)。这是片段:

   UIColor *startColor, *endColor; 
// ...
NSArray *colors = [NSArray arrayWithObjects:
startColor.CGColor, endColor.CGColor, nil];
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace,
(CFArrayRef) colors, NULL);

我如何重写代码以安全地消除此警告?

  • 我尝试手动创建一个 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);

关于iphone - 我如何在带有 CGGradient 的 NSArray 中舒适地使用 CGColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5948237/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com