UIView1とUIView2の2つのUIViewがあります。UIView2はUIView1のサブビューとして追加されています。知りたいのは、
[UIView1 removeFromSuperview];
UIView2にremoveFromSuperViewも適用する線量?または、UIView2でもそれを具体的に呼び出す必要がありますか...
助けていただければ幸いです
UIView---->UIView1------>UIView2
UIView1でUIView2を削除したいとします。次のように書くことができます。
[UIView2 removeFromSuperView].
UIViewでUIView1を削除したい場合は、次のように記述できます。
[UIView1 removeFromSuperView].
この状況では、UIView2も削除されます。ビューを削除すると、ビューのすべてのサブビューが削除されるためです。
[UIView2 removeFromSuperView]
UIView1を削除すると、すべてのサブビューも削除されるため、呼び出す必要はありません。
お役に立てれば。
すべてのUIButton、UILabel、およびその他のコントロールがUIViewから継承されていることを考慮し、それらをビューから明示的に削除しない場合、スーパービューから親ビューを削除すると、すべての子サブビューも削除されることが明らかになります。
したがって、電話する必要はありません[UIView2 removeFromSuperview]
UIView2はUIView1のサブビューとして追加されます。つまり、呼び出す[UIView1 removeFromSuperview];
と、それに追加されたものと、UIView1がスーパービューから削除されたものを意味します。だから電話する必要はありません[UIView2 removeFromSuperView];
removeFromSuperView:レシーバーのスーパービューとウィンドウのリンクを解除し、レスポンダーチェーンから削除します。
受信者のスーパービューがnilでない場合、スーパービューは受信者を解放します。ビューを再利用する場合は、このメソッドを呼び出す前に必ずビューを保持し、必要に応じて後で再度解放してください。
ここで[UIView2 removeFromSuperView]
は、UIView1からUIView2を削除します
また[UIView1 removeFromSuperView]
、superViewからすべてのサブビューを削除します(ウィンドウまたは別のビューの場合があります)
次のようなメインビューを作成する必要があります
UIView * main=[[[UIView alloc] initWithFrame:CGRectMake(20, 20, 20, 20)]autorelease];
[self.view addsubview main];
[main addsubview UIView1];
[main addsubview UIView2];
それからあなたは電話します
[UIView1 removeFromSuperview];