0

JSONファイルからロードされたオブジェクトでいっぱいのスクロールビューがあります。3 秒ごとにデータがリロードされますが、実際には何も変更されません (ユーザーが新しいデータを追加しない限り)。リロードは非常に高速ですが、スクロール ビューが一番上に戻ります。あの頃のままでいてほしい。これどうやってするの?

このコードを使用して、リロードのためにすべてを削除します。

[scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];

そして、スクロール ビューを再作成します。リロードすると、スクロールビュー vil のフレームが初期値に戻り、オブジェクトの追加のみが拡大されます。

4

1 に答える 1

0

これは、JSON ファイルから受け取った各オブジェクトで UIScrollView の contentSize を設定していることを前提としています。

その最初のオブジェクトが JSON ファイルから再度読み込まれると、contentSize が非常に低く設定されるため、一番上までスクロールします。

ただし、すべてのオブジェクトを元に戻す前に、UIScrollView からすべてを削除する必要はありません。代わりに、そこにあるオブジェクトをキャッシュし、変更がある場合にのみキャッシュする必要があります。変更がある場合でも、オブジェクトを削除して再度追加するのではなく、変更を追加するだけでよいと考えています。

于 2012-05-16T02:19:08.123 に答える