对于“如何调整 UITableView 的 tableHeaderView? ”的答案,我在github上创建了一个小项目,它向 a 添加了一个标题视图,UITableView
并为新添加的标题视图和它下面的单元格设置了动画。
但是,一旦我添加标题单元格,我就会遇到令人讨厌的 UI 故障,因为标题不会与以下单元格一起动画UITableView
:
当我添加标题时,会发生以下步骤:
- 问题:最上面的标题跳转到原始位置
- The
tableHeaderView
和UITableViewCell
s 一起动画到它们的最终位置。
所以我的问题是,我如何确保标题也有动画。
您可以在此处看到效果,其中Section-1
位于最终位置,而单元格和标题视图仍在动画中:
这是我做动画的方法:
- (void) showHeader:(BOOL)show animated:(BOOL)animated{
CGRect closedFrame = CGRectMake(0, 0, self.view.frame.size.width, 0);
CGRect newFrame = show?self.initialFrame:closedFrame;
if(animated){
// The UIView animation block handles the animation of our header view
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
// beginUpdates and endUpdates trigger the animation of our cells
[self.tableView beginUpdates];
}
self.headerView.frame = newFrame;
[self.tableView setTableHeaderView:self.headerView];
if(animated){
[self.tableView endUpdates];
[UIView commitAnimations];
}
}