画出图像

时间:2012-04-26 01:31:23

标签: objective-c uiimageview drawing transparent

我正在制作一些绘图代码。我的那部分工作得很好。

我想要绘制一幅图像,但我仍然希望能够看到图像的细节,黑线等。

我正在做的是制作一个透明的UIImageView来保存图像。

我不确定如何正确设置此设置。

是否应将其添加到我在其上或下方着色的其他UIImageView上方?

这是我到目前为止所拥有的:

- (void)viewDidLoad
{
    [super viewDidLoad];

    topImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 46, 320, 370)];
    [topImageView setImage:[UIImage imageNamed:@"imagesmall.png"]];
    topImageView.alpha = 1.0;
    topImageView.layer.opacity = 1.0;
    topImageView.layer.opaque = NO;
    [self.view addSubview:topImageView];
    [topImageView release];
}

有人想到吗?

1 个答案:

答案 0 :(得分:1)

是的,您可以在其他视图上绘制视图。它们按照它们作为子视图添加的顺序绘制,除非您在此之后重新排序。

您可能需要为某些视图设置opaque属性(这与其图层不透明度不同并覆盖它们),并将其backgroundColor设置为nilUIImageView默认情况下似乎是透明的,只要它的图像是;其他一些UIView子类则不是。

那么,你的叠加层会是什么样的?如果您只需要在另一个图像上显示一个图像,那么您在此处所拥有的内容似乎已经有效。如果需要以编程方式绘制一些行,则需要执行以下操作:

  1. 创建UIView
  2. 的子类
  3. 实施其drawRect方法以显示您需要的内容。
  4. 当您在背景图片上添加自定义视图时,请确保它不是opaque且没有backgroundColor
  5. 这里的一个常见问题是发现您的前台工作正常,但背景未正确加载。要确保背景存在,请将前景视图的alpha设置为0.5。您不希望在生产中执行此操作,但它将允许您验证两个视图是否存在。