如果你仍然遇到问题,可以尝试不使用scrollView。
在尝试了一段时间DBD的示例后,我发现frame和contentSize似乎不能同时设置:
self.tableView.contentSize = CGSizeMake(320, scrollHeight)
self.tableView.frame = CGRectMake(self.tableView.frame.origin.x,44,self.tableView.contentSize.width,self.tableView.contentSize.height)
尝试设置框架的最大高度,但仍保持滚动所有内容的能力,如果有大量单元格。这个技巧似乎很有效,并且可以根据需要通过更多条件进行修改:
int cellCount = [YOURARRAY count];
CGFloat scrollHeight = cellCount*44+44;
self.tableView.contentSize = CGSizeMake(320, scrollHeight);
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad && cellCount < 14)
{
self.tableView.frame = CGRectMake(self.tableView.frame.origin.x,44,self.tableView.contentSize.width,scrollHeight);
}
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone && cellCount < 7)
{
self.tableView.frame = CGRectMake(self.tableView.frame.origin.x,44,self.tableView.contentSize.width,scrollHeight);
}
这肯定有效。您可能需要调整.xib中或代码中的自动调整大小掩码,但这个技巧是我发现的唯一解决所有不同变量的情况。
tableView
和scrollView
应该是您与这些项目关联的IBOutlets。 - DBD