[英]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.