ナビゲーション バー、テーブル ビュー、およびツールバーを含むビュー コントローラーがあります。ビュー コントローラーに UITableViewDelegate を含め、ストーリーボードを介してテーブルのデータ ソースとデリゲートをビュー コントローラーに正しく割り当てました。テーブル ビューはリモート データベースからデータをロードします。テーブルが最後のセルまでスクロールすると、さらに多くのデータがテーブルにロードされます。次の投稿で概説されているように、 scrollViewDidScroll および indexPathForRowAtPoint メソッドを使用してこれを実現しました: How to know when UITableView did scroll to bottom in iPhone . ただし、アプリを実行してテーブルをスクロールすると、indexPathForRowAtPoint によって返される唯一のインデックス パスは、テーブルの読み込み時に指定されたポイントに配置されたパスです。スクロールしたときに得られるコードと出力は次のとおりです。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint bottomPoint = CGPointMake(160, 430);
CGPoint topPoint = CGPointMake(160, 10);
NSLog(@"%d", [[_tableView indexPathForRowAtPoint:bottomPoint] row]);
}
スクロールするたびに、次が出力されます。
2013-06-08 00:56:45.006 Coffee[24493:907] 3
2013-06-08 00:56:45.012 Coffee[24493:907] 3
2013-06-08 00:56:45.040 Coffee[24493:907] 3
2013-06-08 00:56:45.069 Coffee[24493:907] 3
2013-06-08 00:56:45.088 Coffee[24493:907] 3
2013-06-08 00:56:45.105 Coffee[24493:907] 3
2013-06-08 00:56:45.135 Coffee[24493:907] 3
2013-06-08 00:56:45.144 Coffee[24493:907] 3
2013-06-08 00:56:45.173 Coffee[24493:907] 3
2013-06-08 00:56:45.180 Coffee[24493:907] 3
ここで、3 はセルの indexPath.row であり、コントローラーがロードされたときに下のポイントがオンになります。私は何を間違っていますか?なぜこれが起こっているのですか? UITableView が親View Controller内にあるという事実と関係がありますか?