0

如何选择几个UITableViewCell(作为复选标记但具有我自己的风格)然后对选定的项目做一些事情?

作为复选标记(或其他),我想使用UIImageView

在此处输入图像描述

4

3 回答 3

1

要添加到Pandu1251 的答案,如果您想使用自己的复选标记图像,您可以设置自定义附件视图并遵循他指定的相同逻辑。

要设置自定义附件视图,请使用

cell.accessoryView = myAccessoryView; //myAccessoryView is a UIImageView holding your custom check mark image
于 2013-03-06T11:19:56.590 回答
0

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

{

UITableViewCell *thisCell = [tableView cellForRowAtIndexPath:indexPath];
if (thisCell.accessoryType == UITableViewCellAccessoryNone)
{
    thisCell.accessoryType = UITableViewCellAccessoryCheckmark;

}
else
{
  for(int i=0;i<[Array count];i++)
  {
    thisCell.accessoryType = UITableViewCellAccessoryNone;
  }

  thisCell.accessoryType = UITableViewCellAccessoryNone;
}

}

现在试试这个......

于 2013-03-06T10:50:37.523 回答
0

只需按照以下方式进行。为此,您必须采用 NSMutableArray。我在这里采取了 arrMethodsToBeStored。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];

    cell.textLabel.textColor=[UIColor darkGrayColor];
    cell.textLabel.font= [UIFont fontWithName:@"Arial Rounded MT Bold" size:15.0];

    Scope_RepairMethod *scpObj=[repairMethodArr objectAtIndex:indexPath.row];
    cell.textLabel.text= scpObj.strRepairMethod;

    if([self.checkedIndexPath isEqual:indexPath])
    {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    }
    else
    {
        cell.accessoryType = UITableViewCellAccessoryNone;
    }

    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
   // NSString *selID;

    UITableViewCell *newCell = [tableView cellForRowAtIndexPath:indexPath];

    Scope_RepairMethod *scpObj=[repairMethodArr objectAtIndex:indexPath.row];

    if (newCell.accessoryType == UITableViewCellAccessoryNone)
    {
        newCell.accessoryType = UITableViewCellAccessoryCheckmark;
        [arrMethodsToBeStored addObject:scpObj.strRepairMethod];
    }
    else
    {
        newCell.accessoryType = UITableViewCellAccessoryNone;
        [arrMethodsToBeStored removeObject:scpObj.strRepairMethod];
    }
    NSLog(@"selected method arr==== %@",arrMethodsToBeStored);


// I want to enable my save button only if one or more values from table are selected

    if(arrMethodsToBeStored.count > 0)
        saveBtn.enabled=true;
    else
    {
        saveBtn.enabled=false;
    }
}
于 2013-03-06T11:20:08.763 回答