タップしたときにすべての行でサブリストを表示できるタルブルビューを作成しようとしています。そのために、私は、データモデルを更新し、アニメーションセルフサイズのinsertRowsAtIndexPathsが変更されたUITableViewはcontentOffsetを変更します
[self.tableView insertRowsAtIndexPaths:addedIndexPaths withRowAnimation:(UITableViewRowAnimationTop)];
を呼び出す行が表示されている間に行われます。 追加されたセルは、アニメーションの後に正しく表示されますが、テーブルビューのアニメートがスクロールアップすることがあります。これは、特にtableviewの最後のセクションで発生します。また、挿入されたセルの上にあるセルの上端が表示されるまで、tableviewは常にスクロールアップします。
表示可能なアニメーション中にcontentoffsetを修正したいと思います。 コンテキストオフセットをbegin updates
とend updates
に設定しようとしましたが、アニメーションがスクロールアップして内容がスクロールして元の位置に戻ってしまうので、これは機能しませんでした。
自動レイアウトを使用してセルのセルフサイジングを行います。
可視セルを挿入する際に、テーブルビューのコンテンツオフセットを一定に保つにはどうすればよいですか?
:
は自己リサイズただ、これらの行を削除し、使用しないでください。これが起こらないようにするには、新しい行アニメーションを選択する必要があります。おそらく、UITableViewRowAnimationNoneが必要です。すべてのオプションは、https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/#//apple_ref/c/tdef/UITableViewRowAnimationに記載されています。 – Dare
私はそれほど確かではありませんが:あなたがautoLayoutを使用しているかもしれないが、各アニメーションの後に自分自身を調整するためにautoLayoutをメッセージしていない可能性があります。それが役に立てば幸い。 https://www.youtube.com/watch?v=N5Ert6LTruY – Honey
@ asma22私はセルのサイズを決めるために自動レイアウトを使用します。私は試して、開始/終了の更新ブロック内のself.tableview layoutIfNeededと呼ばれたが、それは問題を解決しませんでした。自動レイアウトにどのように気づくのですか? – HasenBaumeister