3

UIView1とUIView2の2つのUIViewがあります。UIView2はUIView1のサブビューとして追加されています。知りたいのは、

[UIView1 removeFromSuperview];

UIView2にremoveFromSuperViewも適用する線量?または、UIView2でもそれを具体的に呼び出す必要がありますか...

助けていただければ幸いです

4

6 に答える 6

5
UIView---->UIView1------>UIView2

UIView1でUIView2を削除したいとします。次のように書くことができます。

[UIView2 removeFromSuperView].

UIViewでUIView1を削除したい場合は、次のように記述できます。

[UIView1 removeFromSuperView].

この状況では、UIView2も削除されます。ビューを削除すると、ビューのすべてのサブビューが削除されるためです。

于 2012-07-06T04:39:01.143 に答える
4

[UIView2 removeFromSuperView]UIView1を削除すると、すべてのサブビューも削除されるため、呼び出す必要はありません。

お役に立てれば。

于 2012-07-06T04:29:18.190 に答える
1

すべてのUIButton、UILabel、およびその他のコントロールがUIViewから継承されていることを考慮し、それらをビューから明示的に削除しない場合、スーパービューから親ビューを削除すると、すべての子サブビューも削除されることが明らかになります。

したがって、電話する必要はありません[UIView2 removeFromSuperview]

于 2012-07-06T04:36:55.743 に答える
1

UIView2はUIView1のサブビューとして追加されます。つまり、呼び出す[UIView1 removeFromSuperview];と、それに追加されたものと、UIView1がスーパービューから削除されたものを意味します。だから電話する必要はありません[UIView2 removeFromSuperView];

于 2012-07-06T04:37:43.730 に答える
1

removeFromSuperView:レシーバーのスーパービューとウィンドウのリンクを解除し、レスポンダーチェーンから削除します。

受信者のスーパービューがnilでない場合、スーパービューは受信者を解放します。ビューを再利用する場合は、このメソッドを呼び出す前に必ずビューを保持し、必要に応じて後で再度解放してください。

ここで[UIView2 removeFromSuperView]は、UIView1からUIView2を削除します

また[UIView1 removeFromSuperView]、superViewからすべてのサブビューを削除します(ウィンドウまたは別のビューの場合があります)

于 2012-07-06T04:39:31.593 に答える
1

次のようなメインビューを作成する必要があります

UIView * main=[[[UIView alloc] initWithFrame:CGRectMake(20, 20, 20, 20)]autorelease];
[self.view addsubview main];
[main addsubview UIView1];
[main addsubview UIView2];

それからあなたは電話します

[UIView1 removeFromSuperview];
于 2012-07-06T05:16:33.697 に答える