2012-03-07 109 views
2

我正在处理iOS 5项目,我正在使用表格视图来选择要添加到一组中的项目。 我正确地设置AllowsMultipleSelectionDuringEditing为YES,让左侧的项目符号和contentView缩进。UITableView多重选择,预先选择的项目

现在,我的问题是,我有一个预先选择的项目列表,用户在编辑模式下进入时应该看到。我查看了文档,但没有找到任何有关它的信息,以便在启用多项选择的情况下进入编辑模式时预先选择索引路径列表。苹果公司是否提供预先选择某些项目的方法,或者我应该自行开发此功能?

回答

5

好吧,我发现了如何做到这一点以及良好和优雅的方式,它是简单除了例外:

的UITableView有选择一行的方法selectRowAtIndexPath:animated:scrollPosition:。 完成我正在寻找的最好方法是创建一个NSSetNSIndexPaths,并且在编辑模式下设置UITableView后立即迭代该设置并逐个选择单元格。

例如以这种方式:

- (NSArray *)_preselectedIndexPaths 
{ 
    NSMutableSet *preselectedItems = [NSMutableSet set]; 
    NSUInteger s = 0, r = 0; 
    for (NSArray *section in self.data) { 
     for (id item in section) { 
      if ([item shouldBePreselected]) { //this is the condition 
       [preselectedItems addObject:[NSIndexPath indexPathForRow:r inSection:s]]; 
      } 
      r++; 
     } 
     s++; 
    } 

    return [preselectedItems allObjects]; 
} 

,然后,对选择项目诠释表视图:

[self.tableView setEditing:![self.tableView isEditing] animated:YES]; 

for (NSIndexPath *ip in [self _preselectedIndexPaths]) 
    { 
     [self.tableView selectRowAtIndexPath:ip 
            animated:YES 
          scrollPosition:UITableViewScrollPositionNone]; 
    } 

我希望这可以帮助别人。

相关问题