0

UITableView に 2 つのセクションがあります。選択した行で UITableViewCellAccessoryCheckmark を有効にしたいと思います。
2 つのセクションでチェックされた行は 1 つだけです。
どうやってやるの?私が見つけた例は、1 つのセクションでそれを行う方法のみを示しています。

ありがとうございました。

4

4 に答える 4

0

ここでは、各セクションの行の総数が 3 で、セクションの総数が 2 であると想定しています。

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


       for(NSInteger i=0;i<2;i++) 
       {


        for (int index=0; index<3; index++) 
        {
            NSIndexPath *indexpath=[NSIndexPath indexPathForRow:index inSection:i];
            UITableViewCell *cell=[tableView1 cellForRowAtIndexPath:indexpath];

            if ([indexPath compare:indexpath] == NSOrderedSame) 
            {

                cell.accessoryType=UITableViewCellAccessoryCheckmark;
            }
            else
            {

                cell.accessoryType=UITableViewCellAccessoryNone;
            }
        }
       }
}
于 2012-02-15T09:59:56.577 に答える
0

これはあなたが助けることができるかもしれません.UITavleviewのデリゲートメソッドで、このコードを実装できます

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.section==1)
    {
        NSUInteger row=indexPath.row;

//  implement you code  for first section;

    }
    elseif(indexPath.section==2)
    {
        NSUInteger row=indexPath.row;
//implement you code  second first section;

    }
.....................
.....................
.....................
}
于 2012-02-15T08:40:47.877 に答える
0

セクション番号と行番号を格納する変数と、選択が行われたかどうかを追跡するブール値を保持できます。このdidSelectRowメソッドでは、これらの値にアクセスして、前のセルから選択を削除し (存在する場合)、現在選択されている行とセクションの値に更新できます。

于 2012-02-15T07:31:57.880 に答える