昨夜、iOS SDK のかなり不便な「機能」に出くわしたので、その発見と解決策を皆さんと共有したいと思いました。また、より良い解決策があるはずです。
シナリオ
私は、お気に入りの項目に対して、他のすべての項目に対して、2 つのセクションを持つテーブル ビューを設定しました。テーブル ビューの行をタップすると、項目がお気に入りとしてマークされているかどうかが切り替わります。お気に入りのアイテムセクションの行をタップすると、お気に入りから削除され、他のすべてのアイテムセクションの行をタップすると、このアイテムがお気に入りに追加されます。
お気に入りの状態が切り替えられると、私はmoveRowAtIndexPath:toIndexPath:
素敵な小さなアニメーションを実行して、行をお気に入りセクションから他のすべてのセクションに移動します。
問題
したがって、ユーザーがお気に入りの状態を切り替えることができるだけでなく、お気に入りセクションのすべてのアイテムを再配置できる必要があるため、問題が発生しました。したがって、お気に入り項目セクションの各行に並べ替えコントロールを表示したいと考えました。
ただし、呼び出し時にセルは再描画されずmoveRowAtIndexPath:toIndexPath:
、fromIndexPath と toIndexPath は両方とも可視領域にあります。これは、お気に入り項目セクションに新しい行を追加するときに、並べ替えコントロールが表示されないことを意味します。