2012-02-28 11 views
0

私は、テーブルビューがスクロールしているときに、現在表示されているセルが画面上のどこに配置されているかに応じてアニメートする効果を得ようとしています。私は、IOSのDEVに多少新たなんだ、そう私はそれを打破してみましょう: UITableViewがスクロールしているときのセルのアニメーション

  • テーブルが動いている間にカスタムセルユーザーと

    • テーブルビューの負荷がスクロール始まり、可視セルは、ここでのUIViewを持っています は、画面上のセルの 現在のY位置に直接対応するアニメーションを実行するようにします。
    • 細胞は、それらが 可視
    • セルアニメーションを直接すなわち たびテーブルビュースクロールし、テーブル移動に対応している場合、細胞はアニメートさをアニメーションであろう。一度 テーブルが停止すると、アニメーションは一時停止します

    私が考えていた解決策は、tableviewが動いているときにdrawRectを1フレームごとに更新することでした。グラフィック操作に応じて、これは恐ろしいパフォーマンス賢明かもしれません。変更するたびに現在のテーブルの位置を取得する方法はありますか?コアアニメーションの使用に適していますか?

  • 答えて

    1

    あなたのView ControllerをUITableViewのデリゲートにし、scrollview Delegateのすべてのメソッドも使用します。そこには、開始スクロールと終了スクロールのための多くのコントロールがあり、コントロール内では、セルの位置を確認できるようになっています。

    +0

    まさに私が探していたもの、ありがとう。これを実現するためには、フレームワークAPIが必要だと思いました。ありがとうございました。 – Chris

    0

    あなたはこれにデリゲートになることがあります。https://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html

    、これはあなたの細胞をオーバーライドして、アニメーション化する方法である:

    – tableView:willDisplayCell:forRowAtIndexPath: 
    
    +0

    私はそれが十分ではないと確信しています。セルが表示されると通知するだけで、表示される場所はわかりません。 –

    +2

    あなたはそうです。しかし、スクロールビュープロトコルのこのメソッドに委任された場合、scrollViewDidScroll:およびTableViewからindexPathsForVisibleRowsを取得し、それらの行をアニメートします。 Offcourseでは、アニメーションを開始したセルと、アニメーションしなかったセルを追跡する必要があります。とにかく、それはまだきれいな解決策であるかもしれない –

    1

    あなたは以下のような何かを達成したい場合、これが役に立つかもしれません: をhttps://github.com/mrugrajsinh/AnimatedTableViewCellDemo

    enter image description here

    +0

    素晴らしい仕事の薬ですが、それは期待された機能を果たしていないjurkといくつかの時間は、長方形のセルサイズ –

    関連する問題