2

如果我有嵌套的子视图,如果我调用 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];

然后按下按钮C:

[viewA removeFromSuperView];

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

4

3 回答 3

8

所有视图都将被删除。如果您保持对所有视图的strong引用,viewA那么所有视图仍将存在,并且可以稍后再次添加。如果你不这样做,它们都会被摧毁。

于 2013-07-09T15:20:44.500 回答
2

只要您没有其他对您的视图 A..C 的引用,它们就会被删除和销毁

于 2013-07-09T16:34:26.037 回答
1

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

就是这样。

于 2014-10-22T11:55:01.393 回答