与UITableView的heightForHeaderInSection混淆

时间:2015-07-04 21:04:49

标签: ios objective-c uitableview

所以我使用以下代码为我获取一个不可见的标题 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返回的结果非常奇怪

enter image description here

我没有覆盖tableView:heightForRowAtIndexPath,只有一个部分。为什么contentHeight有负值,为什么该方法多次运行?

0 个答案:

没有答案