正确使用 addSubView?

Posted

技术标签:

【中文标题】正确使用 addSubView?【英文标题】:correct use of addSubView? 【发布时间】:2011-08-21 22:20:32 【问题描述】:

我目前使用没有任何问题:

-(IBAction)products:(id)sender 
    products = [[Products alloc] initWithNibName:@"Products" bundle:nil];
    [self.view addSubview:products.view];

我将此操作绑定到按钮以更改我的视图。我确定这是不正确的,因为视图正在堆叠,对吗?我的应用程序会因此而崩溃吗?知道通过 IBAction 切换视图的任何好的示例代码吗?

【问题讨论】:

【参考方案1】:

如果您添加的子视图将覆盖整个超级视图,您可以考虑在添加新子视图之前删除现有的子视图。您可以通过标记视图然后删除它们来做到这一点。

添加视图时,为其分配标签-

products.view.tag = 1; //any number you want
[self.view addSubview:products.view];

要删除旧视图,请获取并删除它-

UIView* subview = [self.view viewWithTag:1]; //Use the same number
[subview removeFromSuperview];
//now add a new view

HTH,

阿克谢

【讨论】:

好的。我在 ios 文档中看到了这一点,但不知道如何编写它。他们提供的另一个选项是为每个视图分配一个指针,但您需要适当地管理它。【参考方案2】:

添加多个视图会使您的应用程序变慢但不会崩溃..

您可以从 superview 中删除所有视图,这将解决您的所有问题

希望它有效..

【讨论】:

以上是关于正确使用 addSubView?的主要内容,如果未能解决你的问题,请参考以下文章

什么类型的代码正确:AppDelegate 中的 addSubview 或直接控制器分配?

addSubview 方法是啥样的?

如何刷新通过 addSubview 添加的图像?

UIWindow addSubview 上的偏移量

在同一个 ViewController 中有子视图是不是正确?

将 customTableView 添加到未正确加载 json 数据的视图上