UITableViewCellAccessory检查

时间:2011-09-01 00:12:48

标签: iphone arrays add checkmark

我有一个在表视图中加载的数组,如果用户点击某个单元格,它将更改为UITableViewCellAccessoryCheckmark。 如何检查数组中的哪个对象被检查,并将检查的所有对象添加到另一个数组?

2 个答案:

答案 0 :(得分:1)

tableView:didSelectRowAtIndexPath:方法中的类似内容:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //set checkmark accessory on table cell ...

    // get object and add to checkedObjects array
    NSInteger index = [indexPath row];
    MyObject *object = [myArray objectAtIndex:index];
    [checkedObjects addObject:object];
}

答案 1 :(得分:1)

如果您想要一个实时获取被检查对象的函数,请使用以下命令:

- (NSMutableArray*)checkedObjectsInTable:(UITableView*)tableView
{
    NSMutableArray *checkedObjects = [[[NSMutableArray alloc] init] autorelease];
    for (int i=0; i<tableDataSource.count; i++)
        {
            if ([tableView cellForRowAtIndexPath:
                 [NSIndexPath indexPathForRow:i inSection:0]].accessoryType == UITableViewCellAccessoryCheckmark)
            {
                [checkedObjects addObject:[tableDataSource objectAtIndex:i]];
            }
        }

    return checkedObjects;
}

这将允许您按需获取数据。请注意,它比简单地使用Jasarien的方法效率低得多,但在某些情况下它是更好的解决方案。