addsubview 重新加载表视图

Posted

技术标签:

【中文标题】addsubview 重新加载表视图【英文标题】:addsubivew reloads tableview 【发布时间】:2015-07-11 12:40:12 【问题描述】:

我有一个view,其中包括一个tableview。我尝试添加另一个视图作为该视图的子视图,如下所示:

[mainviewcontroller addChildViewController:subViewcontroller];
[mainviewcontroller.view addSubview:subViewcontroller.view];

当我这样做时,tableview 会重新加载并返回到原来的位置。我应该怎么做才能防止重新加载?

我发现了问题! 因为我使用自动布局添加子视图导致添加子视图后页面刷新。有什么办法可以防止吗?!

【问题讨论】:

并没有真正看到表重新加载只是因为它被添加到视图中——您是否在某处重新加载它? @niloufar 您的问题不够清楚,您能否添加更多详细信息或编码您正在尝试做什么? 【参考方案1】:

关键是table view的两个内存只是有区别,实际上两个table view不是同一个“UITableView”。

所以问题不是“reloadData”,问题是你有两个表视图,或者你创建它然后创建另一个新的。

【讨论】:

感谢您的回复,我只有一个表格视图,我将其添加到故事板中的 mainViewController 中,然后我尝试添加另一个视图作为子视图,然后刷新表格视图...【参考方案2】:

只需保留所选单元格的索引并在之后调用它。 比如:

NSIndexPath* index = [yourTableView indexPathForSelectedRow];
[mainviewcontroller addChildViewController:subViewcontroller];
[mainviewcontroller.view addSubview:subViewcontroller.view];
[yourTableView selectRowAtIndexPath:index animated:NO];

【讨论】:

谢谢,但我的问题不仅仅是选定的行,我正在使用平移手势更改表格位置,并且此重新加载导致返回到原始位置

以上是关于addsubview 重新加载表视图的主要内容,如果未能解决你的问题,请参考以下文章

UIWindow 和 UIView addSubview 问题

addSubview 将我的视图变为默认视图

3.复杂查询

NSView 的 addSubview 方法天生就慢吗? (可可 OSX)

对象 addSubview 仅适用于 viewDidLoad

在 didSelectRowAtIndexPath 时更改视图控制器