3

我知道论坛中有很多问题的答案,但他们没有帮助我。这是我的问题。

UITableViewUISegmentedControl。一个段中的数据比另一个段中的少。旋转或分段切换后,我调用reloadData以确保显示整个数据。这样可行。

现在,用户单击一个单元格并使用相同的UISegmentedControl. 打算使用相同的控件,我希望两个视图都显示相同的数据透视图。当用户在第一个屏幕上看到数据较少的透视图时,就会出现问题,然后转到第二个屏幕并将透视图更改为那里的数据。然后他返回并且无法滚动到表格底部。如果他旋转屏幕或更改片段,一切都会再次正常。

我尝试通过实施viewWillAppear:和减少/计算tableView. 不幸的是,它没有奏效。调用reloadData也无济于事。实际上,tableView切换段时已经重新加载...但是,我仍然看不到表格的最后一个单元格。

有任何想法吗?

编辑:

这是我从测试中得到的高度(没有调整大小):

NSLog(@"Before switch: %f, %f", self.tableView.frame.size.height, self.tableView.contentSize.height);--> 切换前:372.000000, 471.000000

NSLog(@"After switch: %f, %f", self.tableView.frame.size.height, self.tableView.contentSize.height);--> 切换后:372.000000, 585.000000

tableView保持不变,只是增加了contentSize。我尝试将一个的值设置为另一个的值,减少值等,但我真的不知道应该做什么......

编辑2:

一切contentSizeheight价值观似乎都很好。但是,我意识到问题与屏幕上的自定义标题视图有关。当我从表格视图中删除它时,它会滚动到最后。但是,对于标题视图,它不会。我没有从标题视图中更改任何内容,它只是一个在表格顶部带有按钮的视图。

4

2 回答 2

4

这是因为您的 tableView 的框架高度超出了可见区域。将 tableView 的框架高度降低到可见区域内。你会看到一切。

tableView.contentSize = CGSizeMake(widthYouWant, heightYouWant);
于 2014-07-10T12:38:48.980 回答
1

经过几个小时的实验,我将contentSize.height属性增加了tableView一个,现在一切正常。我不知道为什么会这样,但它是一个解决方案。顺便说一句,将属性减一会导致相同的结果。在这两种情况下,表格都会正确显示。

于 2013-05-13T10:29:20.383 回答