1

私の問題は、UITableView のサブビューを持つ UIContainerView があることです。ユーザーがボタンを押すと、この UIContainerView はフレーム サイズをアニメーション化することで、開閉を切り替えます。私が抱えている問題は、フレーム サイズがすぐに設定され、アニメーションが時間の経過とともに発生するため、アニメーションが完了する前に、TableView セルが「デキュー」されて消えることです。tableView が表示されなくなったと考えているためだと思います。

アニメーションが完了するまで、これを遅らせる方法はありますか。おそらく +(void)animateWithDuration:... の完了セクションにあります。

4

2 に答える 2

2

手早く汚い解決策は、フレームの下部に不透明な UIView を追加し、それを上向きにアニメーション化して折りたたみ効果を与えることです。animateWithDuration メソッドの完了ブロックで、コンテナー ビューのフレームを変更できます。

達成しようとしている視覚効果を知らずに、本当に良い答えを出すのは難しいです。より適切な方法は、テーブル ビューのセルを削除してアニメーション効果を与えることですが、見た目が正確ではない可能性があります...

于 2013-04-23T12:57:09.353 に答える
0
[UIView animateWithDuration:(NSTimeInterval) animations:^{
        //Animation code
    } completion:^(BOOL finished) {
        //after animation completion
    }]

これなら使えると思います。アニメーションの後に何をするかは、完了ブロックに記述できます。

于 2013-04-23T12:28:03.830 に答える