1

Apple のドキュメントを読んでいたときに、 などの関数を呼び出すと、addSubviewいわば「ペイントのレイヤー」が追加され、呼び出されるたびに別のレイヤーがオーバーレイされると記載されていたことを覚えています。

これは簡単に答えられる質問のはずですが、Google で検索するキーワードを考えるのに苦労したので、そのような単純な質問をすることをお許しください。

カスタムの「レイヤー」をクリアするにはどうすればよいUIViewですか?

関連するかもしれない私の状況: 画面に表示されているこれらの「ユーザーカード」があります。これらは、いくつかのユーザー イメージで初期化されます。カードは同じままですが、カスタムUIView( card UIView) でメソッドを呼び出して、別のユーザーを表示したいときに画像を再描画します。問題は、このカスタム UIView の一部の要素が透過的であり、これらの画像を毎回再描画することがその透過性に基づいていることです (明らかな問題です)。

4

2 に答える 2

2

Core Graphics では、描いたものがそのまま表示されます。画家の類推は、単一のフレームのみを指します。したがって、 を使用している場合はdrawRect、前の図面をキャッシュしません。

しかし、サブビューまたはサブレイヤーを追加したいくつかの UIKit について話しているのではないかと思います。すべてをクリアしたいだけの場合、これにより残りのビューが削除されます。

for (UIView *view in customView) {
    [view removeFromSuperview];
}

for (CALayer *layer in customView.layer) {
    [layer removeFromSuperlayer];
}
于 2013-01-14T21:00:50.940 に答える