2011-09-09 13 views
3

私はreloadDataを呼び出すことによって、データソース配列が増加するサブクラス化されたnstableviewを持っています。データを更新するためにリフレッシュすることができます。nstableview reloaddataの後に可視コンテンツを保持する方法は?

しかし、reloadData:の後、tableviewは常に同じ古い行番号を持つ新しいセルにスクロールします(たとえば、reloadData:の後にtableviewが2番目のセルを表示していた場合、tableviewは新しい2番目のセルにスクロールしますしたがって、テーブルビューの可視コンテンツが変更されます)。この自動動作を無効にして、表示後のコンテンツを更新後も変更しないでください。

ありがとうございます!

答えて

0

私はこの問題を修正しました:まず、私はrectサイズの量を変更しました。 reloadData:の後に、clipviewのscrollToPoint:メソッドを使用して、変更されたポイント(元のポイント+デルタパーツ)にテーブルビューをスクロールします。それはあなたがそこでの操作を実現できないほど速くなります。

+0

あなたのコードを他の人と共有するように気をつけますか? =) – rocky

+0

私はこれを実装しましたが、少しジッタがあります。スクロールがスムーズですか? –

+0

http://stackoverflow.com/questions/7925136/nstableview-scrollrowtovisible-with-animation –

1

テーブルビューは、内容が変更されたときに再スクロールしません。現在表示されている行の基礎となる表の内容を変更しているので、スクロールを自分で移動する必要があります。

私は、このためのコードを持っていないが、私は、テーブルビューの初期位置を見つけるために、rowAtPoint:を使用して、その行のコンテンツのための新しい行のインデックスを識別したり計算し、その後、呼び出し提案:

[tableView reloadData]; 
[tableView scrollRowToVisible:newIndex]; 
+0

ありがとうございます、あなたの答えは本当に私にインスピレーションを与えました! – Terry

関連する問題