かなり複雑なセルを含むテーブル ビューがあります。セルにはボタンが含まれており、押すとセルが展開され、追加のコントロールが表示されます。これはかなり簡単だと思ったので、次のコードを書きました (UITableViewCell から派生したクラスで):
self.extraView = [[MyView alloc] initWithFrame:CGRectMake(0,100,300,200)];
self.extraView.clipsToBounds = YES;
[self addSubview:self.extraView];
self.extraView.transform = CGAffineTransformMakeScale(1, 0.1f);
[UIView animationWithDuration:0.5 animations:^{
[tableView beginUpdates];
[tableView endUpdates];
self.extraView.transform = CGAffineTransformIdentity;
}];
驚くべきことに、これによりextraView
画面上で短時間フラッシュが発生し、その後消えます。への呼び出しを削除するbeginUpdates
と、期待どおりにアニメーション化されますendUpdates
。extraView
ただし、表のセルは表示するのに十分な大きさではありません。alpha を 0 に設定してから、テーブルの更新中にフェードインしようとしましたが、うまくいくようです。残念ながら、私はそのextraView
場で成長させ、衰退させないようにすることになっています.
フレームの変更など、さまざまな変更方法を試しextraView
ましたが、テーブルの更新には常に何らかの副作用が生じます。また、完了ハンドラーでスケール変更をチェーンしようとしましたが、もちろんうまくいきませんでした。これは、完了ブロックが実行されたときにテーブルビューがアニメーション化されていないためだと思います。
テーブルの更新中にセル内のビューのフレームをアニメーション化する方法はありますか?