1

UIScrollView を持つビューがあり、いくつかのテキスト (JSON 経由で読み込まれます) があります。ユーザーがスクロールの最後に到達したことを検出する必要があります (ここで他の質問を見ました)。

@property (retain, nonatomic) IBOutlet UIScrollView *scroll;

私の.hファイルで、それを.mファイルで合成しました。私はこれをviewDidLoadに持っています:

self.scroll=[[UIScrollView alloc]init];
self.scroll.delegate=self;

接続は Interface Builder で行われます (UIScrollView を使用した IBOutlet の「スクロール」など)。

その後、JSON への呼び出しで UITextView を満たし、scrollView に関連しない他のことを行います。次に、メソッド scrollViewDidScroll を実装しました。しかし、それは決して呼び出されません。スクロールは正常に機能し、上下に移動してテキスト全体を表示できます。しかし、プロトコルのメソッドが呼び出されない理由は何ですか?

ありがとうございました。

4

3 に答える 3

4

UIScrollView新しいインスタンスを割り当てて初期化する必要はありません。IB からリンクすると、すでに完了しています。そうすれば、リンクが切れます。

ちなみに、あなたのscrollプロパティは として定義されてretainいるので、

self.scroll = [[UIScrollView alloc]init];

メモリリークです。

于 2012-06-27T08:26:51.030 に答える
1

UIViewControllerに準拠していますUISrollViewDelegateか? プロトコルはこちら

次の点に注意してください。

UIScrollViewDelegate プロトコルによって宣言されたメソッドにより、採用デリゲートは UIScrollView クラスからのメッセージに応答し、スクロール、ズーム、スクロールされたコンテンツの減速、アニメーションのスクロールなどの操作に応答し、何らかの影響を与えることができます。

必須のメソッドはありませんが、メソッドを使用するにはプロトコルを採用する必要があります。

于 2012-06-27T08:26:30.297 に答える
1

つまり... scrollViewDidScroll メソッドを呼び出したい場合は、プログラムで contentSize を設定する必要があります (スクロールがうまく行われているにもかかわらず)。

素晴らしい... x(

于 2012-06-27T09:04:51.220 に答える