UITableView 层次结构不是在一行中

问题描述 投票:0回答:2

我有一个带有单元格的简单表格视图。当我在模拟器中运行应用程序并检查层次结构时,它没有在单行中对齐,而是看起来像嵌套的。

UI设计如下:

层次结构如下:

在其他视图控制器中看起来不错,请检查下图:

我担心的是表格视图单元格没有单行对齐。但对于其他表格视图单元格位于同一行,请检查第三张图片。

有人可以帮我解决这个问题吗?

ios swift uitableview uikit
2个回答
0
投票

调试视图层次结构是正确的。正如您在第二张照片中看到的,UITableView 与 UIView 处于同一级别(位于安全区域下方)。与第一张照片对应,它们是

Table View
Top View
。该表格视图将单元格作为其子视图。

分解视图层次结构:您的

HistorySearchView
是一个视图控制器,它是 UINavigationController 的子级,而这个导航控制器是 UITabBarController 的
tab item


0
投票

A

UITableView
在“幕后”做了很多的工作。

一项重大任务是管理其单元格的高效显示 - 请记住,单元格是重复使用

当您开始使用表格视图时,会添加单元格。当您滚动时,将会添加一些更多单元格...但随后它们开始被重用。

另请注意,滚动指示器视图是层次结构的一部分!

因此,根据单元格高度(以及,我确信还有许多其他因素),表格视图可能添加 3 个单元格,然后添加滚动指示器视图,然后再添加 2 个单元格 - 为您提供“交错”层次结构。

当您继续滚动时,表格可能(几乎肯定将会)重新排列单元格的顺序。因此,每次您使用“调试视图层次结构”时,层次结构中的单元“级别”都会发生变化。

这是完全正常的,并且除非我们对细胞做一些我们可能不应该做的事情,否则不会产生不良影响。

© www.soinside.com 2019 - 2024. All rights reserved.