2016-07-16 4 views
1

私はUITableviewのセクションが40から50です。セクションヘッダーでタップしたときに展開可能なテーブルビューです。既に展開されている場合は、対応するセクションを展開しています。私の問題は、セクションヘッダーでデータをサーバーに要求し、サーバーからデータを受信したときです。私のTableviewは自動的に上にスクロールされ、これは20番目のセクション以降に発生します。何が間違っているのか分からなかった。なぜデータをリロードしている間にUITableviewがスクロールするのですか

NSIndexSet *sections = [NSIndexSet indexSetWithIndex:self.selectedIndexPath.section]; 
[self.tableview reloadSections:sections withRowAnimation:UITableViewRowAnimationFade]; 
+0

あなたのデータのために、細胞のどのような種類を使用していますか?可変高さのセルを使用すると、これが発生します。データがロードされた後、タップされたセクションヘッダーがテーブルの先頭にあることが予想される動作ですか? – user2002649

+0

Defalut UITableviewCellとセルの高さとセクションの高さの両方を使用してダイナミック、そのスクロール(上部0) –

答えて

1

いくつかのセルの高さを変更すると、リロード後にテーブルが別の位置にスクロールします。あなたは負荷が完了した後にテーブルビューがタップセクションの先頭にスクロールしたい場合は 、どのようなものについて:

NSIndexSet *sections = [NSIndexSet indexSetWithIndex:section]; 
[self.tableView reloadSections:sections withRowAnimation:UITableViewRowAnimationFade]; 

NSIndexPath  *sectionPath = [NSIndexPath indexPathForRow:NSNotFound inSection:section]; 
[self.tableView scrollToRowAtIndexPath:sectionPath atScrollPosition:UITableViewScrollPositionTop animated:YES]; 
+0

それは、テーブルの上部にスクロールしている場合は、データソースに何かをしているテーブルのセクションをゼロにしてから直ちにリセットしますか? – user2002649

関連する問題