簡體   English   中英

從superView中刪除UIView

[英]remove UIView from superView

我有兩個UIViews,UIView1和UIView2。 UIView2被添加為UIView1的子視圖,我想知道的是,如果我打電話

[UIView1 removeFromSuperview];

劑量也適用於UIView2上的removeFromSuperView? 或者我是否也必須在UIView2上調用它...

任何幫助,將不勝感激

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

假設您要在UIView1上刪除UIView2,只需編寫即可

[UIView2 removeFromSuperView].

假設您要在UIView上刪除UIView1,只需編寫即可

[UIView1 removeFromSuperView].

在這種情況下,UIView2也被刪除。 因為刪除任何視圖時,將刪除所有視圖子視圖。

無需調用[UIView2 removeFromSuperView]因為當您刪除UIView1時,它也會刪除其所有子視圖。

希望這可以幫助。

如果您認為所有UIButtons,UILabel和其他控件都是從UIView繼承的,並且您沒有從視圖中明確刪除它們,則很明顯從superview中刪除父視圖也會導致刪除所有子視圖。

因此,您無需調用[UIView2 removeFromSuperview]

你做了UIView2被添加為UIView1的子視圖。 所以如果你調用[UIView1 removeFromSuperview]; 意味着你在其中添加了什么以及從superview中刪除了UIView1。 所以不需要調用[UIView2 removeFromSuperView];

removeFromSuperView :取消接收器與其superview及其窗口的鏈接,並將其從響應器鏈中刪除。

如果接收者的超級視圖不是零,則超級視圖釋放接收者。 如果您計划重用視圖,請務必在調用此方法之前保留它,並在以后適當時再次釋放它。

這里[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];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM