【问题标题】:How to input an argument into CGContextSetRGBFillColor?如何在 CGContextSetRGBFillColor 中输入参数?
【发布时间】:2011-11-26 06:20:21
【问题描述】:

我正在尝试使用数据类型输入CGContextSetRGBFillColor 的参数。例如:

NSString *colorcode = ctx, 0, 1, 0, 0; 
CGContextSetRGBFillColor(colorcode);

但我收到一条错误消息,提示我的论点太少。

我想根据用户的操作更改(ctx, 0, 1, 0, 1 ) 发送到CGContextSetRGBFillColor 的参数。

我想使用数据类型为CGContextSetRGBFillColor 输入参数,因为它的值是在单独的视图控制器中设置的。或者我可以直接将参数输入CGContextSetRGBFillColor,然后把它带到另一个视图控制器使用它?

【问题讨论】:

  • 如果你处理当前的CGContext,你可以使用UIColor类的setFill方法;)

标签: ios core-graphics arguments multiview


【解决方案1】:

尝试使用UIColor 对象来存储用户选择的颜色。您可以像这样创建一个:

UIColor *color = [UIColor colorWithRed:0 green:1 blue:0 alpha:0];

那么当需要使用它作为填充颜色时,你可以这样做:

CGContextSetFillColorWithColor(ctx, color.CGColor);

我应该提一下,如果您使用 ARC,则需要适当地保留和释放颜色。

【讨论】:

    【解决方案2】:

    听起来你真正需要做的是:

    CGContextSetRGBFillColor (ctx, 0.0f, 1.0f, 0.0f, 1.0f);
    

    每个颜色分量是 0.0 到 1.0 之间的某个分数。

    你为什么使用 NSString?

    Here is the documentation on Apple's website.

    【讨论】:

      【解决方案3】:

      我想使用数据类型为 CGContextSetRGBFillColor 输入参数,因为它的值是在单独的视图控制器中设置的。

      您可能对CGColor 类感兴趣,或者,特别是在 iOS 上,UIColor

      或者我可以直接将参数输入到 CGContextSetRGBFillColor ...

      这是向CGContextSetRGBFillColor 输入参数的唯一方法。

      ...然后把它带到另一个视图控制器来使用它?

      这没有意义。带来什么?

      如果您想将颜色从一个视图控制器带到另一个视图控制器,最好通过创建一个颜色对象(CGColor 或 UIColor)并传递它来完成。

      【讨论】:

      • 让一个视图控制器负责一个颜色选择器视图,并在另一个控制器的视图中使用拾取的颜色是合理的。
      • @robmayoff:很公平。我会从我的答案中删除那一点。
      猜你喜欢
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 2011-10-11
      • 2015-10-03
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      相关资源
      最近更新 更多