0

ここにいくつかの興味深い質問があります。私はテーブルビューを備えたアプリを開発しています。最初、テーブルビューには4つの行があり、4つの行すべてに画像ビューの同じ画像があります。最初の行をクリックすると、最初の行の下にいくつかのサブ行を手動で追加し、テーブルビューを再読み込みしました。以前にクリックしたのと同じ行を2回目にクリックすると、手動で追加したオブジェクトを削除し、テーブルビューを再読み込みしました。1回目の画像変更をしたいです。1番目のときの行。行をクリックし、1番目をクリックします。次に、4つの行すべてで同じ前の画像を表示します。これを行う方法を教えてください。

a=b=c=FALSE


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

    ///////11111

if(a==FALSE && indexPath.row==0)

{

 [array insertObject:@"a" atIndex:1];

  [array insertObject:@"b" atIndex:2];

 [array insertObject:@"c" atIndex:3];

a=TRUE;


}

   else if(indexPath.row==0 && a==TRUE)

 {

 [array removeObject:@"a"];

  [array removeObject:@"b"];

  [array removeObject:@"c"];


        a=FALSE;
    }


 else if(a==FALSE && b==FALSE && indexPath.row==1)


    {
        [array insertObject:@"d" atIndex:2];
          [array insertObject:@"e" atIndex:3];
          [array insertObject:@"f" atIndex:4];
        b=TRUE;
    }
    else if(a==TRUE && b==FALSE && indexPath.row==4)
    {
        [array insertObject:@"d" atIndex:5];
        [array insertObject:@"e" atIndex:6];
        [array insertObject:@"f" atIndex:7];
        b=TRUE;
    }
    else if(a==FALSE && b==TRUE && indexPath.row==1)
    {
        [array removeObject:@"d"];
        [array removeObject:@"e"];
        [array removeObject:@"f"];
        b=FALSE;
    }
    else if(a==TRUE && b==TRUE && indexPath.row==4)
    {
        [array removeObject:@"d"];
        [array removeObject:@"e"];
        [array removeObject:@"f"];
        b=FALSE;
    }



    /////////3333333333

    else if(a==FALSE && b==FALSE && c==FALSE && indexPath.row==2)
    {
        [array insertObject:@"m" atIndex:3];
        [array insertObject:@"n" atIndex:4];
        [array insertObject:@"p" atIndex:5];
        c=TRUE;
    }
    else if(a==FALSE && b==TRUE && c==FALSE && indexPath.row==5)
    {
        [array insertObject:@"m" atIndex:6];
        [array insertObject:@"n" atIndex:7];
        [array insertObject:@"p" atIndex:8];
        c=TRUE;
    }
    else if(a==TRUE && b==FALSE && c==FALSE && indexPath.row==5)
    {
        [array insertObject:@"m" atIndex:6];
        [array insertObject:@"n" atIndex:7];
        [array insertObject:@"p" atIndex:8];
        c=TRUE;
    }
    else if(a==TRUE && b==TRUE && c==FALSE && indexPath.row==8)
    {
        [array insertObject:@"m" atIndex:9];
        [array insertObject:@"n" atIndex:10];
        [array insertObject:@"p" atIndex:11];
        c=TRUE;
    }


        else if(a==TRUE && b==TRUE && c==TRUE && indexPath.row==8)
        {
            [array removeObject:@"m"];
             [array removeObject:@"n"];
             [array removeObject:@"p"];
            c=FALSE;
        }
        else if(a==TRUE && b==FALSE && c==TRUE && indexPath.row==5)
        {
            [array removeObject:@"m"];
            [array removeObject:@"n"];
            [array removeObject:@"p"];
            c=FALSE;
        }
        else if(a==FALSE && b==TRUE && c==TRUE && indexPath.row==5)
        {
            [array removeObject:@"m"];
            [array removeObject:@"n"];
            [array removeObject:@"p"];
            c=FALSE;
        }
    else if(a==FALSE && b==FALSE && c==TRUE && indexPath.row==2)
    {
        [array removeObject:@"m"];
        [array removeObject:@"n"];
        [array removeObject:@"p"];
        c=FALSE;
    }


    //////4444444444
    if(indexPath.row==[array count]-1)
    {
      ---
    }

    [tableview reloadData];
}
4

2 に答える 2

1

ディクショナリを持つ配列でテーブルビューを埋めていると仮定します。辞書にフラグを設定し(「expanded」や「collapsed」など)、cellForRowAtIndexPathでフラグがtrue / falseであるかどうかを確認して、フラグに従って画像を設定できます。

于 2012-05-24T07:59:36.060 に答える
0

セルにあるデータメンバーとNSString*parentElement型の別のデータメンバーを持つセル型のクラスを作成します。メインの4つのラベルの場合、親要素はnullになりますが、セル内のサブセルの場合、所有者セルがその親要素になります。次に、親要素の条件を確認し、必要な画像を設定します。それは私にとってはうまくいきました。あなたにもうまくいくことを願っています。

于 2012-05-24T10:18:57.907 に答える