UIView
をサブクラス化し、それにdrawRect
メソッドを追加しました。次に、このカスタムクラスを使用してビューを定義し、それにサブビューを追加します。
問題は、drawRect
がサブビューの下に何かを描画しているように見えることです(したがって表示されません)。
drawRect
が描画するものをカスタムUIView
のサブビューの上に表示したい。
これは可能ですか?
サブビューは常にそのスーパービューの「上部」に描画されます。
特定の要件によっては、既存のサブビューを含むプレーンなUIViewを背景/コンテナビューとして使用し、次に別のサブビューとしてカスタムビューを最上部に追加して、Zオーダーが最も高くなるようにする必要がある場合があります。 。
これは、たとえば、カスタムビューが他のすべての上にある必要があるグリッドオーバーレイである場合に機能します。カスタムビューは、透明な背景色で不透明でない必要があります。
いいえ、サブビューは常にコンテナの上に表示されます。もちろん、サブビューを(部分的に)透明にすることを妨げるものは何もありません。
上に描画する場合は、別の透明なサブビューを一番上のサブビューとしてコンテナに配置し、そのサブビューに描画します。その上でユーザーインタラクションを無効にしても、タッチ処理に干渉することはありません。