2012-04-22 9 views
39

私は次に作成します:UITableViewはセルに移動します

私はUITableViewには単語(A-Z)を表示する必要があります。

現在、表示がロードされたときに表示されるセルが1つあります(これは正しい)。最初のセルは私の配列単語から最初の単語を表示します。

目的: 私の配列から10ワードを表示する必要があるセルに移動したいのですが、問題はindexPath.row = 10のセルが存在しないことです(これは正しくスクロールしないためです)。

1から10のセルに遷移するための正しい待ち時間とは何ですか?

セルを作成するのにdequeueReusableCellWithIdentifierを使用しないと、私はそれを実行して問題を解決することができますが、デバイスメモリのこの問題を意味します。言い換えれば

は私がscrollToRowAtIndexPath

感謝をする必要があります!

答えて

81

scrollToRowAtIndexPathメソッドを識別する権利はあります。だから、あなたがする必要があるすべては、あなたが移動したい行と新鮮なIndexPathを作成され、例えば、行インデックス= 10:

[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:10 inSection:indexPath.section] 
      atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; 
+0

回答ありがとうございますが、まだ存在しないindexPathをスクロールするにはどうすればよいですか? –

+0

私は今あなたの元の質問を理解しているのだろうかと思います。あなたのテーブルには、たとえば100など、多くのセルが含まれていることが理解されていますが、一度に表示できるのは約10だけです。技術的には実際の行は100個ありませんが(セルの再利用のため)、まだ目に見えない行にプログラムでスクロールすることはできます。たとえば、50行目。 – arooaroo

+0

もう一度ありがとうございます。今私はこの問題を解決しましたが、scrollToRowAtIndexPath with animatio NOはまだ動作しません。したがって、アニメーションがYESの場合は、エイリアシングがうまくいきます。 –

4
//For iOS 7 
     [self.TableView reloadData]; 
     NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:1]; 
     [TableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES]; 
1

一つの例で行を(識別できることがあるの下に。 forRow)を表示して行をリロードする必要があります。それが完了すると、その行にスクロールすることができます。

let moveToIndexPath = NSIndexPath(forRow: forRow, inSection: 0) 
self.tableView.reloadRowsAtIndexPaths([moveToIndexPath], withRowAnimation: .None) 
self.tableView.scrollToRowAtIndexPath(moveToIndexPath, atScrollPosition: atScrollPosition, animated: true) 
関連する問題