如何删除子视图(或视图的所有子视图)

n.e*_*ind 1 iphone cocoa-touch objective-c uiview

我有一个方法,我分配和初始化

UIView (`tabsClippedView = [[[UIView alloc] initWithFrame:tabsClippedFrame] autorelease];`).
Run Code Online (Sandbox Code Playgroud)

此视图添加了另一个视图

(`tabsView = [[[UIView alloc] initWithFrame:tabsFrame] autorelease];`).     
Run Code Online (Sandbox Code Playgroud)

然后我发起几个按钮

(e.g. `UIButton* btn = [[[UIButton alloc] initWithFrame:frame] autorelease];`)
Run Code Online (Sandbox Code Playgroud)

并将它们添加到视图的子视图中.

现在,我需要删除所有按钮并再次分配它们.是删除整个视图的最佳方法还是仅添加按钮的子视图?

我怎么需要这样做(没有内存泄漏等)?会很简单

self.tabsView = nil;
Run Code Online (Sandbox Code Playgroud)

是否足以删除视图及其所有子视图(即按钮)?

或者更好的是删除超级视图,从头开始:

self.tabsClippedView = nil;
Run Code Online (Sandbox Code Playgroud)

lxt*_*lxt 14

由于你的UIView是自动释放的,你只需要从superview中删除它.有哪些removeFromSuperview方法.

所以,你只想打电话[self.tabsView removeFromSuperview].只要您的财产声明设置为retain您所需要的全部内容.