UITableView 在重新加载页面时在单元格顶部显示额外的分隔线
Posted
技术标签:
【中文标题】UITableView 在重新加载页面时在单元格顶部显示额外的分隔线【英文标题】:UITableView showing extra separator lines, on top of cells, when reloading page 【发布时间】:2020-08-28 12:46:33 【问题描述】:我有一个包含多个部分的 UITableView。当我的标签页第一次加载时,一切看起来都很好。但是当我导航到不同的选项卡并返回时,我的 UITableView 有一些额外的分隔线。
我验证 numberOfRowsInSection 正确返回 2。
我的行高设置为 AutomaticDimension。
我在 viewDidAppear 中调用 reloadData。
我尝试将表格单元格的背景颜色设置为白色,但多余的线条仍然可见。
UITableView 位于 UIScrollView 内部,我知道这是不受欢迎的,但我正在进行计算以计算 TableView 的大小。一切都在初始加载时完美运行,直到我返回选项卡才得到额外的行。
【问题讨论】:
检查你的视图调试器应该会给你关于问题所在的提示。 这是我第一次听说 View Debugger。我正在用 Xamarin 编写这个应用程序,所以我无法访问所有 XCode 的工具。 你能把代码贴在 ACCOUNT 视图控制器中吗? 这一切都是在 Storyboard / IB 中设计的吗?还是通过代码添加视图? 我没有使用 Storyboard,我所有的视图都是用代码创建的。 @ColeX-MSFT,给我一点,我会用一些代码上传我的帖子。 【参考方案1】:在我的 AccountViewController 中,我正在调用 API 来获取用户在 ViewDidAppear 中的获取帐户信息。
我不会创建新的 TableViewSource,而是清除现有数据,并使用 API 调用的结果重新填充它。流程是这样的。
清除源数据 调用 API 使用 API 数据填充源 重新加载表数据我最终通过在清除源后调用 Reload Table Data 来解决问题。
清除源数据 重新加载表数据 调用 API 使用 API 数据填充源 重新加载表数据也许不是最有效的方法,但在页面的当前结构中是最容易实现的。
【讨论】:
以上是关于UITableView 在重新加载页面时在单元格顶部显示额外的分隔线的主要内容,如果未能解决你的问题,请参考以下文章
当 deviceOrientation 改变时在 UITableView 中重新加载数据