Clicked Header Section滚动到顶部

时间:2017-07-16 05:56:34

标签: ios objective-c uitableview

我有以下自定义headerview实现。当用户单击headerView时,它会展开以显示相应的单元格。

我想我有两个部分。并且第一部分被扩展,第二部分被折叠。当我单击第二部分时,我希望此部分滚动到顶部。

#wrapper {
  display: flex;
  flex-direction: row;
  border: 1px solid black
}

#square {
  width: 50px;
  height: 50px;
  border: 1px solid blue;
}

#box {
  border: 1px solid red;
  flex: 1;
}

1 个答案:

答案 0 :(得分:0)

由于Fade需要大约半秒才能执行,你会看到轻弹。您需要做的是给TableViewScroll稍微延迟,或者只使用:

[CATransaction begin];
[comboTableView beginUpdates];
[CATransaction setCompletionBlock: ^{
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:section];

   [comboTableView scrollToRowAtIndexPath:indexPath
                          atScrollPosition:UITableViewScrollPositionTop
                                  animated:YES];
}];
for (int i = 0; i< ((ComboItem*)comboItemsArray[section]).allComboItems.count; i++)
    {
        NSArray* rowsToReload = [NSArray arrayWithObjects:[NSIndexPath indexPathForRow:i inSection:section], nil];
        [comboTableView reloadRowsAtIndexPaths:rowsToReload
                                   withRowAnimation:UITableViewRowAnimationFade];
    }
[comboTableView endUpdates];
[CATransaction commit];