web-dev-qa-db-ja.com

UITableViewが上にスクロールしたかどうかを通知します

私はこれを試しました:

- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView

しかし、テーブルビューを一番上までスクロールしても、起動しませんでした。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

デリゲートが問題にならないように発砲します。

ViewDidLoadでは、[myTbl setDoesScrollToTop:YES];も設定します

27
JoshDG

scrollViewDidScrollToTop:メソッドは、ユーザーがステータスバーをクリックし、scrollsToTopプロパティがYESに設定されたときに発生します。ドキュメントから:

スクロールビューは、コンテンツの上部へのスクロールが完了すると、このメッセージを送信します。コンテンツの上部がすでに表示されている場合は、すぐに呼び出されることがあります。最上部へのスクロールジェスチャ(ステータスバーのタップ)を有効にするには、UIScrollViewのscrollsToTopプロパティをYESに設定する必要があります。

ユーザーが手動で最上部にスクロールした場合は発生しません。このケースを処理したい場合は、scrollViewDidScroll:メソッドを実装し、スクロールが一番上にあるかどうかを確認する必要があります。

これは contentOffset プロパティを通じて確認できます。例:

if (scrollView.contentOffset.y == 0) { // TOP }
62