1

我有 UITableView 并将 tableview 的高度设置为 308。对于每个单元格,它们的大小为 154,如屏幕截图所示。

在此处输入图像描述

现在,当我运行它时,我在 UITableView 中有 3 行。我期望仅将高度保持为 308 并期望具有滚动选项。在滚动时,我也会看到第 3 行,但是 UITableView 的行为有所不同。它正在占据整个屏幕,如下所示。

在此处输入图像描述

如果你看到,我可以看到第三行并且行的高度增加了。

如果要调整 tableview 的高度,我在 viewWillAppear 中添加了以下代码,

mainTableView.frame = CGRectMake(mainTableView.frame.origin.x, mainTableView.frame.origin.y, 320, 308);

当我第一次运行时,我看到所有三行。当我尝试添加并返回主屏幕时,我现在只看到两行。但问题是当我滚动时,它崩溃了。

崩溃说

Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 5 beyond bounds [0 .. 4]'

但这不是实际问题。如果这是问题,那么当我第一次去 HomeViewController 时它应该也崩溃了。

有什么建议我应该如何解决这个 UITableView 问题?

4

1 回答 1

0

您的弹簧和支柱配置为自动调整大小UITableView以适应屏幕的高度和宽度。如果您只需要表格视图的高度为 308px,请在选择表格视图时禁用界面构建器的“视图”部分中的垂直箭头。此外,就您的问题而言,您似乎没有clipsToBounds为表格视图启用该属性。

于 2013-07-25T20:00:11.410 回答