0

動的コンテンツを持つスクロールビューを実装しました。複数のサブビューで、プレーヤー名の下にプレーヤーの写真を表示します。フローは次のとおりです。 1. メイン ウィンドウで、プレーヤーを選択します。2. ユーザーが別のビューを起動して、新しいプレーヤーを追加します。3. ユーザーがメイン メニューに戻ると、スクロール ビューが完全に更新され、新しいプレーヤーの写真と名前も表示されます。

この時点で、スクロール ビューには以前に選択したプレーヤーがまだフォーカスされているはずですが、代わりに最初から表示されています。問題は、スクロールビューの特定の位置に自動的にスクロールして、選択したプレーヤーにフォーカスを合わせたままにする方法はありますか?

4

2 に答える 2

1

簡単に、ビューの変更後に保持できるCGPointと を作成し、BOOL最初にそのページから移動したときにそれらを設定します。次に、が使用されviewDidAppearているかどうかを確認できます。BOOLYES

[myScrollView setContentOffset:myCGPoint animated:YES];

または、スクロール ビューが既に正しい位置にスクロールされているように表示する場合はviewWillAppear、アニメーション フラグを に設定する以外は同じことを行いNOます。

于 2012-12-07T20:41:37.543 に答える
1

はい、次の 2 つがあります。

(1) scrollRectToVisible:animated:
(2) setContentOffset:animated:

UIScrollView Class Referenceで両方のメソッドについて読むことができます。どちらの方法でも、インスタンス変数を使用して、ユーザーがスクロールしたときにコンテンツ オフセットまたは表示されている四角形を格納し、上記の方法のいずれかを使用して、プレーヤー データが更新されたときにスクロール ビューの位置を復元できます。

何をしているかによっては、UITableView は非常にカスタマイズ可能な「すぐに使える」ものであり、リストを管理するのに役立つメソッドがたくさんあるため、実装が簡単であることがわかる場合があります (上記のものを含む)。 . 興味がある場合は、UITableView Class Referenceをご覧ください。

于 2012-12-07T20:43:56.013 に答える