2016-10-02 54 views
0

如何在我的tableView中返回单元格后立即增加值?每次返回单元格时增加一个值

var indexDigit1 = 0 
var indexDigit2 = 1 

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

indexDigit1 = indexDigit1 + 2 
indexDigit2 = indexDigit2 + 2 

return cell 

但我想在我的tableView的每一个细胞是indexDigit1和indexDigit2变化。

因此,例如:indexDigit1应该是2,indexDigit2应该是3,第二个单元格应该是4,而第三个应该是5等等。所以标签中的值可以改变!

+5

你的方法看起来已经错了。注意'cellForRowAtIndexPath'可以以任意顺序重复调用行,这就是为什么该方法有一个'indexPath'参数! –

+3

您应该尝试使用比屏幕上的行更多的行,然后上下滚动。 –

回答

2

此代码在哪里?看起来好像你想要indexDigit1是行索引(+1)(第二个单元格是indexPath.row == 1),并且indexDigit2是(+2)行索引,你甚至不需要一个变量,而你只想使用cellForItemindexPath.row属性。

0

如果我知道你需要什么,你可以创建一个数组,其位置(指数)将代表你需要的在你的情况indexDigit1是位置值和值为0

例如:

比方说,你的表只有10个细胞,因而:

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

对于技术部分将要使用的方法cellForRowAtIndexPath并指定你需要为的价值您需要:

array[indexPath.row] = theValueYouNeed 

而且,看起来也许你需要某种形式的公式的值,也许theValueYouNeed += 2或更复杂的东西,将满足您的需要。现在

,你可以提取你需要为每个indexPath.row值:

let theValueYouNeedForTheCorrespondingRow = array[indexPath.row] 
+2

'[Int](arrayLiteral:10)'返回一个包含* single *元素'10'的数组,而不是10个元素的数组。其实我不知道任何你需要在你的代码中使用'arrayLiteral'(或任何其他'xxxLiteral'构造函数的情况。 –

相关问题