在导航栏正下方滚动tableview单元格?

时间:2014-12-13 17:18:05

标签: ios objective-c uitableview uiscrollview autolayout

我有一个tableview。在点击时,单元格会扩展为一个表单,我希望单元格向上滚动以从导航栏下方开始。我如何实现这一目标?

这是起始状态:
Starting state

目前,点按后:
Current behavior

这就是我想要的:
Desired behavior

2 个答案:

答案 0 :(得分:2)

你需要这样的东西:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Perform cell change height code here
    // ...

    // After that scroll to this cell
    CGFloat sectionHeaderHeight = [self tableView:tableView heightForHeaderInSection:indexPath.section];
    CGRect cellFrame = [tableView rectForRowAtIndexPath:indexPath];
    [tableView setContentOffset:CGPointMake(0, cellFrame.origin.y - sectionHeaderHeight) animated:YES];
}

答案 1 :(得分:1)

scrollToRowAtIndexPath...scrollToNearestSelectedRow...都采用“滚动位置”参数,允许选择转到表格视图的顶部,中间或底部。这应该给你你想要的。