2016-10-02 5 views
0

テーブルビューでセルを返す直後に値を増やすにはどうすればよいですか?セルが返されるたびに値を増やす

var indexDigit1 = 0 
var indexDigit2 = 1 

cell.detailTextLabel?.text = "\(array[indexDigit1])"+"\(array[indexDigit2])" 

indexDigit1 = indexDigit1 + 2 
indexDigit2 = indexDigit2 + 2 

return cell 

しかし、私はそのindexDigit1とindexDigit2が私のtableView内のすべてのセルに変更したいと思います。

例:indexDigit1は2、indexDigit2は2番目のセルでは3、3番目のセルでは4と5です。ラベルの値が変更される可能性があります。

+5

さて、あなたは、各indexPath.rowのために必要な値を抽出することができます。 'cellForRowAtIndexPath'は、行に対して任意の順序で、繰り返し呼び出されることに注意してください...そのため、そのメソッドには' indexPath'パラメータがあります! –

+3

画面に収まるよりも多くの行を試してから、上下にスクロールする必要があります。 –

答えて

2

このコードはどこにありますか? indexDigit1を行インデックス(2番目のセルはindexPath.row == 1)、indexDigit2を行インデックス(+2)にしたい場合は、変数も必要ありませんあなたはcellForItemindexPath.rowプロパティを使用したいだけです。

0

私はあなたが必要なものを理解していれば、あなたはその位置(インデックス)はあなたのケースでindexDigit1位置であり、値が例えば0

であるあなたが必要とする値を表すだろうという配列を作成することができます。

のは、あなたのテーブルは、このように、わずか10細胞を持っているとしましょう:

array = [Int](count: 10, repeatedValue: 0) 

あなたがメソッドcellForRowAtIndexPathを使用して、のために必要な値を割り当てます技術的な部分についてあなたが必要:多分あなたは多分theValueYouNeed += 2またはあなたの必要性に合う、より複雑な何か、値の式のいくつかの並べ替えを必要とするよう

array[indexPath.row] = theValueYouNeed 

はまた、見えます。あなたのアプローチはすでに間違って見える

let theValueYouNeedForTheCorrespondingRow = array[indexPath.row] 
+2

'[Int](arrayLiteral:10)'は、10要素配列ではなく、* single *要素 '10'を持つ配列を返します。実際には、 'arrayLiteral'(または他の' xxxLiteral'コンストラクタをコード内で使用する必要がある場合はわかりません。 –

関連する問題