从superView中删除UIView

我有两个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和其他控件都是从UIViewinheritance的,并且您没有从视图中明确删除它们,则很明显从superview中删除父视图也会导致删除所有子视图。

因此,您无需调用[UIView2 removeFromSuperview]

你做了UIView2被添加为UIView1的子视图。 所以如果你调用[UIView1 removeFromSuperview]; 意味着你在其中添加了什么以及从superview中删除了UIView1。 所以不需要调用[UIView2 removeFromSuperView];

你最好创建像这样的主视图

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

然后你打电话

 [UIView1 removeFromSuperview]; 

removeFromSuperView :取消接收器与其superview及其窗口的链接,并将其从响应器链中删除。

如果接收者的超级视图不是零,则超级视图释放接收者。 如果您计划重用视图,请务必在调用此方法之前保留它,并在以后适当时再次释放它。

这里[UIView2 removeFromSuperView]将从UIView1中删除UIView2

另外[UIView1 removeFromSuperView]将从其superView(可能是窗口或其他视图)中删除其所有子视图