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一部のビューのプロパティを設定し(これはレイヤーの不透明度とは異なり、オーバーライドします)、ビューをに設定backgroundColorする必要がある場合がありますnilUIImageView画像が透明である限り、デフォルトでは透明に見えます。他のいくつかのUIViewサブクラスはそうではありません。

では、オーバーレイはどうなるのでしょうか。ある画像を別の画像の上に表示する必要がある場合は、ここにあるものはすでに機能しているようです。プログラムで線を引く必要がある場合は、次のようにする必要があります。

  1. のサブクラスを作成しますUIView
  2. drawRectそのメソッドを実装して、必要なコンテンツを表示します。
  3. 背景画像の上にカスタムビューを追加するときは、そうでないことと、がないことを確認してopaqueくださいbackgroundColor

ここでの一般的な問題は、フォアグラウンドが機能しているのに、バックグラウンドが正しくロードされていないことを確認することです。背景がそこにあることを確認するにalphaは、前景ビューのをに設定し0.5ます。本番環境ではこれを行いたくないでしょうが、両方のビューが存在することを確認できます。

于 2012-04-26T03:39:11.917 に答える