7

我想要的东西如下

UIImage *solid = [UIImage imageWithColor:[UIColor darkGrayColor]];

根据某种颜色创建图像。

如何在 iPhone sdk 中做到这一点。

4

2 回答 2

21

您可以将颜色绘制到 CGContext 中,然后从中捕获图像:

- (UIImage *)imageWithColor:(UIColor *)color andSize:(CGSize)size {
  //Create a context of the appropriate size
  UIGraphicsBeginImageContext(size);
  CGContextRef currentContext = UIGraphicsGetCurrentContext();

  //Build a rect of appropriate size at origin 0,0
  CGRect fillRect = CGRectMake(0,0,size.width,size.height);

  //Set the fill color
  CGContextSetFillColorWithColor(currentContext, color.CGColor);

  //Fill the color
  CGContextFillRect(currentContext, fillRect);

  //Snap the picture and close the context
  UIImage *retval = UIGraphicsGetImageFromCurrentImageContext(void);
  UIGraphicsEndImageContext();

  return retval;
}
于 2009-07-31T17:23:41.960 回答
2

如果您只是想创建一个纯色矩形,为什么不做类似的事情

UIView *solid = [[UIView alloc] initWithFrame:someFrame];
solid.backgroundColor = [UIColor greyColor];

然后将视图添加到要显示纯色的任何子视图中。

(也就是说,当然只有当你想要达到的目标时。也许你不是)

于 2009-07-31T17:41:37.320 回答