2016-10-02 2 views
0

tableView에서 셀을 반환 한 후에 값을 늘리려면 어떻게해야합니까?셀이 반환 될 때마다 값이 증가합니다.

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는 두 번째 셀에는 3, 세 번째 셀에는 4와 5입니다. 레이블의 값이 변경 될 수 있습니다!

+5

귀하의 접근 방식은 이미 잘못된 보인다. 'cellForRowAtIndexPath'는 임의의 순서로 행에 대해 반복적으로 호출 될 수 있습니다 ... 그 이유는 메소드에'indexPath' 매개 변수가 있습니다! –

+3

화면에 표시되는 것보다 많은 행을 시도한 다음 위아래로 스크롤해야합니다. –

답변

2

이 코드는 어디에 살고 있습니까? indexDigit1을 행 인덱스 (두 번째 셀은 indexPath.row == 1)로 만들고 indexDigit2를 행 인덱스 (+2)로 만들려면 변수가 필요하지 않은 것처럼 보입니다. 그리고 cellForItemindexPath.row 속성을 사용하기 만하면됩니다.

0

나는 당신이 필요로 이해한다면, 당신은 당신이 당신의 경우 indexDigit1가 위치 인 필요로하는 가치와 값을 나타냅니다 위치 (인덱스) 예를 들어 0

것을 배열을 만들 수 있습니다 : 당신이 방법 cellForRowAtIndexPath을 사용하고에 필요한 값을 할당합니다 기술의 경우

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

:

의 당신의 테이블에 따라서 10 세포를 가지고 있다고 가정 해 봅시다당신이 필요합니다 어쩌면 당신은, 값에 어쩌면 theValueYouNeed += 2 또는 당신의 필요에 맞게 무언가 더 복잡를 공식의 일종이 필요한 것처럼

array[indexPath.row] = theValueYouNeed 

또한, 보인다.

지금, 당신은 당신이 각 indexPath.row에 필요한 값을 추출 할 수 있습니다 :

let theValueYouNeedForTheCorrespondingRow = array[indexPath.row] 
+2

'[Int] (arrayLiteral : 10)'은 10 요소 배열이 아닌 * single * 원소가 '10'인 배열을 반환합니다. 실제로'arrayLiteral' (또는 다른'xxxLiteral' 생성자를 코드에서 사용해야하는 경우를 알지 못합니다. –

관련 문제