从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(可能是窗口或其他视图)中删除其所有子视图