2

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

我想在图像上绘图,但我仍然希望能够看到图像的细节、黑线等。

我正在做的是制作一个透明的 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];
}

有人想吗?

4

1 回答 1

1

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

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

那么,您的叠加层将是什么?如果您只需要在另一个图像上显示一个图像,那么您在这里所拥有的似乎已经可以工作了。如果您需要以编程方式绘制一些线条,则需要这样做:

  1. 创建 的子类UIView
  2. 实现它的drawRect方法来显示你需要的内容。
  3. 当您在背景图像上添加自定义视图时,请确保它不是opaque并且没有backgroundColor.

这里的一个常见问题是发现您的前台工作正常,但后台没有正确加载。要确保背景存在,请将alpha前景视图的 设置为0.5。您不想在生产中这样做,但它可以让您验证两个视图是否存在。

于 2012-04-26T03:39:11.917 回答