选择UITableView的多行

时间:2010-12-13 15:44:37

标签: iphone cocoa-touch uitableview

此页面 http://networkpx.blogspot.com/2009/07/multiple-row-selection-with-uitableview.html

提到了一种实现表视图的方法,可以允许多个行选择。

在撰写本文时,似乎并不是一种幸运的方式。

现在,显然,Apple正在允许这种tableViews。

文章提到了这个

NSArray* selectedRows = [tableView indexPathsForSelectedRows];

作为获取所有行的列表的方法,但这不是SDK的合法功能。

最大的问题是:如何获取所有选定行的列表,以便我可以对它们执行操作?

谢谢

修改

回答一些问题......这是我用来发现是否选择了一行的代码,但这给了我零条目。

NSMutableArray *selectedRows = [[NSMutableArray alloc] init];

for (int i=0; i<[list count]; i++) {

 NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
 UITableViewCell *aCell = (UITableViewCell*) [myTable cellForRowAtIndexPath:indexPath];
 if (aCell.accessoryType == UITableViewCellAccessoryCheckmark) {
  [selectedRows addObject:indexPath];
 }
}

// selectedRows has always 0 entries... all cells give me their type as UITableViewCellAccessoryNone even those with checkmark

3 个答案:

答案 0 :(得分:2)

Apple将拒绝适用于iOS 4及更低版本的应用。

  

我们在您的应用中发现了以下非公开API:

     

indexPathsForSelectedRows

答案 1 :(得分:1)

创建一个NSMutableArray。 每当选择表格单元格时,请在数组中插入当前索引路径。每当他取消选择单元格时,将其从阵列中移除。最终数组将包含您选择的所有内容。

表格中的MultipleCheck - 带演示的UITableView示例

http://sugartin.info/2011/08/19/multiplecheck-in-table-uitableview/

答案 2 :(得分:0)

您是否希望用户同时选择多行?如果没有,您可以创建一个数组,用于保存用户选择它们时选择的每一行。

同样对于复选标记,您可以只是UITableViewCell的子类。

How to subClass UITableViewCell and use it to not clear UILabel background color on UITabeViewCell selected?