UITextViewがあり、ユーザーがボタンをタップしたときのフレームの変更をアニメーション化しようとしています。基本的に、テキストビューは画面に合わせて大きくなり、より多くのテキストを表示できるようになります。その後、ユーザーがボタンをもう一度タップすると、元のフレームに縮小されます。
次のように、ブロックを使用してアニメーションを実行します。
if(!isDisplayingDetailView)
{
//Expand view
[UIView animateWithDuration:0.5
animations:^{
self.detailView.frame = self.view.frame;
}
completion:^(BOOL finished){
isDisplayingDetailView = YES;
}];
}
else{
//Shrink view.
[UIView animateWithDuration:0.5
animations:^{
self.detailView.frame = self.detailFrame;
}
completion:^(BOOL finished){
isDisplayingDetailView = NO;
}];
}
ここで、self.detailViewはUITextViewであり、self.detailFrameは元のフレームを保持する単なるCGRectです。isDisplayingDetailViewは、ビューが展開されているかどうかを確認するための単なるブール値です。私の問題は、テキストのサイズ変更がアニメーション化されていないことです。問題を説明するために、テストアプリからいくつかのスクリーンショットを作成しました。アプリのデフォルトビュー:
拡大図:
ボタンをタップした直後のテキストビュー:
ご覧のとおり、境界がアニメーション化されている間、テキストはアニメーションなしで最終的なフレームサイズに自動的に縮小されます。これは正しい動作だと思いますが、テキストとそのビューをアニメーション化できるかどうかを知りたいと思います。