2012-06-16 98 views
0

這是一個很難解釋的問題,所以我希望我能說出它iphone:如何檢查的UITableView行模

我有一個tableview中,我想的..

行號1有一個背景和行2號有另一個背景。

和行號3具有第三背景..

第四行應具有第一背景和第五應具有第二..

等等..

我用這個代碼

if(row+1%1==0){ 
    bg = [UIImage imageNamed:@"row1.png"]; 
    selectionBg = [UIImage imageNamed:@"row1.png"]; 
} 

else if(row+1%2==0){ 
    bg = [UIImage imageNamed:@"row2.png"]; 
    selectionBg = [UIImage imageNamed:@"row2.png"]; 
}else if(row+1%3==0){ 
    bg = [UIImage imageNamed:@"row3.png"]; 
    selectionBg = [UIImage imageNamed:@"row3.png"]; 
} 

我想要使用模量,但我迷路了..所以是有一個辦法?

在此先感謝

+0

...那現在是怎麼模數工作...在任何編程語言 –

回答

3

你應該使用mod 3,因爲你有三個選擇:

if (row % 3 == 0) { 
    // Option A 
} else if (row % 3 == 1) { 
    // Option B 
} else { 
    // Option C 
} 

順便問一下,你明白一個模操作做了什麼?這可能是有趣的(從Wikipedia)讀:

在計算中,該模運算由另一個找到的 一個數除法的餘數。

給定兩個正數,一個(被除數) 和n(除數),一模n(簡稱爲MOD N)可以被N的作爲剩餘部分 思想,上的一個部門。例如,表達式「5 mod 4」將評估爲1,因爲5除以4葉子 餘數爲1,而「9 mod 3」將評估爲0,因爲9乘以3的 除以0的餘數;沒有什麼從9 減去乘以3倍3.


這是在代碼中發生的事情後:

row  row % 3 option 
0   0   A 
1   1   B 
2   2   C 
3   0   A 
4   1   B 
5   2   C 
6   0   A 
…   …   … 
+0

噸帽子很好..謝謝我不完全知道模數:) –

1

使用,而不是modulos使用靜態計數器 像以下

static int rowBGSelector = 0; 
    switch (rowBGSelector) { 
     case 0: 
      NSLog(@"%d, first", i); //Chose BG 1 
      break; 
     case 1: 
      NSLog(@"%d, second", i); //Chose BG 2 
      break; 
     case 2: 
      NSLog(@"%d, third", i); //Chose BG 3 
      break; 

     default: 
      rowBGSelector = -1; //Reset the static 
      break; 
    } 

    rowBGSelector++; //Increment 
+0

這也是一個很好的答案 –