2012-06-16 100 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

这也是一个很好的答案 –