removefromsuperview会删除子视图吗?

时间:2013-07-09 15:18:55

标签: ios objective-c ios6

如果我有嵌套子视图,如果我调用removefromsuperview,是否所有子视图都会被处理?

伪代码:

UIView *viewA = [[UIView alloc] initWithFrame:CGRectMake(0 , 0, 100, 100)];
[self.view addSubview:viewA];
UIView *viewB = [[UIView alloc] initWithFrame:CGRectMake(25 , 25, 50, 50)];
[viewA addSubview:viewB];
UIButton *buttonC = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[viewB addSubview:buttonC];

然后按下buttonC:

[viewA removeFromSuperView];

所有视图都会从屏幕上删除,但它们是否已正确删除? 我是否需要手动删除所有视图?

3 个答案:

答案 0 :(得分:8)

所有观点都将被删除。如果您对strong保持viewA引用,那么所有观看次数仍然存在,可以在以后再次添加。如果不这样做,它们都将被销毁。

答案 1 :(得分:2)

只要您没有对您的观点A..C的其他引用,它们将被删除并销毁

答案 2 :(得分:1)

您可以轻松查看。创建uiview的子类,覆盖dealloc方法并在那里设置制动点。然后创建此类的实例并将其作为子视图添加到视图中。 当您在视图中调用removeFromSuperview时,将激活制动点。

就是这样。