0

我在我的 iPhone 应用程序中实现了 UITableView。此外,我在 UITableView 中添加了多行选择。但问题是,当我选择特定行然后滚动表并返回未选中(未标记)中的相应行时。这是我的 didSelectRowAtIndexPath 方法。

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

        [tableView deselectRowAtIndexPath:indexPath animated:YES];
        if([tableView cellForRowAtIndexPath:indexPath].accessoryType==UITableViewCellAccessoryNone)
        {  
            [tableView cellForRowAtIndexPath:indexPath].accessoryType=UITableViewCellAccessoryCheckmark;        
            [selectedIndexes addObject:[NSNumber numberWithInt:indexPath.row]];
            NSLog(@"Select now %d",[selectedIndexes count]);
        }
        else if([tableView cellForRowAtIndexPath:indexPath].accessoryType==UITableViewCellAccessoryCheckmark)
        {
            [tableView cellForRowAtIndexPath:in dexPath].accessoryType=UITableViewCellAccessoryNone;
            [selectedIndexes removeObject:[NSNumber numberWithInt:indexPath.row]];
            NSLog(@"DeSelect now %d",[selectedIndexes count]);
        }   
}

请给我解决方案。

4

2 回答 2

1

当您每次滚动表格视图时,每次都会调用委托方法 cellForRowAtIndexPath 方法。因此,它每次都会加载数据。意思是,首先您必须存储在 didSelectRowAtIndexPath 方法中单击了哪些行,并根据这些cellForRowAtIndexPath 方法中的行索引,您必须显示哪些表视图行已被选中并带有复选标记,而其余行没有复选​​标记...

于 2012-10-31T06:47:52.230 回答
0

检查这个。多行选择和编辑

你会发现真的很容易和有用。

享受编程

于 2012-10-31T06:45:02.140 回答