所以我使用以下代码为我获取一个不可见的标题 UITableView是为了垂直居中我的UITableViewCells。
- (CGFloat)tableView:(nonnull UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
CGFloat contentHeight = 0.0;
for (int i = 0; i < [self numberOfSectionsInTableView:tableView]; ++i) {
for (int j = 0; j < [self tableView:tableView numberOfRowsInSection:section]; ++j) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:j inSection:i];
contentHeight += [self tableView:tableView heightForRowAtIndexPath:indexPath];
}
}
NSLog(@"%f", tableView.bounds.size.height);
NSLog(@"%f", contentHeight);
NSLog(@"%f", (tableView.bounds.size.height - contentHeight) / 2);
return (tableView.bounds.size.height - contentHeight) / 2;
}
然而,NSLog返回的结果非常奇怪
我没有覆盖tableView:heightForRowAtIndexPath,只有一个部分。为什么contentHeight有负值,为什么该方法多次运行?