繁体   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