在iOS7之前我会使用这段代码来计算UITableView的大小,然后设置它的tableView.contentSizeForViewInPopover:
(它是我的UIPopoverController
类的类方法:
+(CGFloat)createContentHeighForTableViewController:(UITableViewController *)viewController {
CGFloat tableViewHeight = 0;
for (int i = 0; i < [viewController.tableView numberOfSections]; i++)
{
CGRect sectionRect = [viewController.tableView rectForSection:i];
tableViewHeight += sectionRect.size.height;
}
if (tableViewHeight > POPOVER_SIZE.height){
return POPOVER_SIZE.height;
}
else {
return tableViewHeight;
}
}
这不是很完美,但会运作得相当好:
当我向下滚动时,它会将tableView
拉回来,它会停留在图片中的所在位置。
这就是我说我的代码工作得很好的原因:
这是向上滚动的结果,它稍微偏离视图中的某些tableview
。
随着移动到iOS7和相同的代码,结果如下:
这是任何滚动的默认值。
很明显我的内容太小了。如何更好地计算tableView的大小?