多个单元格选择在tableview中

时间:2011-05-12 05:41:52

标签: iphone uitableview

我想将照片上传到twitter,facebook和twit pic等等。我在Array中使用了它并在Table视图中显示。我正在使用shareKit。我编码好像我选择了一个单元格(对于eg.Twitter)然后它会将照片上传到twitter我想要选择多个单元格并在一个按钮上执行此发送操作(发送到选定的行项目)。我能够标记/取消标记单元格但是如何获取单元格的选定值。我不希望它处于表的编辑模式..

代码:

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


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


    else {

        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    }



}

5 个答案:

答案 0 :(得分:3)

sourceArray成为您用来填充tableview的数组。 selectedObjects是一个被选中的对象数组,初始化为包含0个对象。它应该是(私有)类实例变量。

//NSMutableArray *selectedObjects = [[NSMutableArray array] retain];

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

    YouObjectType *object = [sourceArray objectAtIndex:indexPath.row]; //This assumes that your table has only one section and all cells are populated directly into that section from sourceArray.
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
        cell.accessoryType = UITableViewCellAccessoryNone;
        [selectedObjects removeObject:object];
    }
    else {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
        [selectedObjects addObject:object];
    }
}

然后在您描述的按钮的发送操作方法中,使用selectedObjects数组中的对象执行所需的操作。

答案 1 :(得分:1)

您也可以使用tableview中的复选标记来制作..

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)path {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:path];
 if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
cell.accessoryType = UITableViewCellAccessoryNone;
} else {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
}

答案 2 :(得分:0)

您可以在选择了哪个单元格的数组中管理它,或者在选择行时,然后在didSelectRowAtIndexPath中根据上述条件更新该数组,并在上载图像时使用该数组。例如 - 你有一个数组,其中包含用于键@“image”和@“isSelected”的字典两个对象,并使用此数组填充表,当您选择一行时,然后在indexPath.row中作为字典对象访问数组中的元素并为键“isSelected”更新字典“true”或“flase”。

答案 3 :(得分:0)

在didSelectRowAtIndexPath中获取indexPath.row,您可以知道选择了哪个单元格。

答案 4 :(得分:0)

您可以使用此github repo JLSelectionTVC(https://github.com/nvrtdfrst/JLSelectionTVC)来完成此任务

enter image description here