0

問題を説明するのは難しいので、私はそれを述べることができると思います

私はテーブルビューを持っています、そして私はそれが欲しいです。

行番号1には背景があり、行番号2には別の背景があります。

行番号3には3番目の背景があります。

4番目の行には最初の背景があり、5番目の行には2番目の背景があります。

など..

私はこのコードを使用しました

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"];
}

モジュラスを使おうとしていますが、迷子になります。そのための方法はありますか?

前もって感謝します

4

2 に答える 2

3

mod 3次の3つのオプションがあるため、使用する必要があります。

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

ちなみに、モジュロ演算が何をするのか理解できますか?これは読むのが面白いかもしれません(ウィキペディアから):

計算では、モジュロ演算は、ある数値を別の数値で除算した余りを求めます。

2つの正の数a(被除数)とn(除数)が与えられた場合、モジュロn(mod nと略記)は、aをnで割った余りと考えることができます。たとえば、式「5 mod 4」は、5を4で割ると余りが1になるため、1と評価されます。一方、「9 mod 3」は、9を3で割ると余りが0になるため、0と評価されます。3を3倍した後、9から引くものは何もありません。


これはコードで起こることです:

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
…         …         …
于 2012-06-16T19:17:49.213 に答える
1

モジュロを使用する代わりに、次のような静的カウンターを使用します

    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
于 2012-06-16T19:22:12.613 に答える