「 UITableViewのtableHeaderViewのサイズを変更する方法」の回答については、githubに小さなプロジェクトを作成しました。このプロジェクトは、にヘッダービューを追加しUITableView
、新しく追加されたヘッダービューとその下のセルの両方をアニメーション化します。
UITableView
ただし、ヘッダーセルを追加するとすぐに、ヘッダーが:のセルと一緒にアニメーション化されないため、厄介なUIグリッチが発生します。
ヘッダーを追加すると、次の手順が実行されます。
- 問題:一番上のヘッダーが元の位置にジャンプします
tableHeaderView
とsはUITableViewCell
、最終的な位置まで一緒にアニメートします。
だから私の質問は、ヘッダーもアニメーション化することをどのように確認できるかということです。
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];
}
}