正确的TableView中的indexPath.row选择有多个部分?

时间:2010-01-21 07:39:46

标签: iphone

我有多个部分的tableview。每个部分都有不同的行数。 当我在特定部分中选择特定行时,如何找到正确的indexPath.row ?任何教程?

2 个答案:

答案 0 :(得分:15)

我不知道“正确”是什么意思。 indexPath.row始终是该部分的本地,这意味着

section 0
---------
[ row 0 ]
[ row 1 ]
[ row 2 ]
---------    
section 1
---------
[ row 0 ]
[ row 1 ]
---------
section 2
---------
[ row 0 ]
[ row 1 ]
[ row 2 ]
[ row 3 ]
---------    

要获取全局行,您可以计算部分和。

NSUInteger row = 0;
NSUInteger sect = indexPath.section;
for (NSUInteger i = 0; i < sect; ++ i)
   row += [dataSource tableView:tableView numberOfRowsInSection:i];
row += indexPath.row;
return row;

答案 1 :(得分:1)

UITableview向代表发送

willSelectRowAtIndexPath:didSelectRowAtIndexPath:消息

并发送

UITableViewSelectionDidChangeNotification向观察员发送通知。

通过收听这些消息,您将知道选择了哪些行。

xCode中有一个带有UITableView的模板,这是学习UITableView的一个很好的起点。您可以围绕NSArray字符串实现它作为您的数据源。这样就可以将学习精力集中在UITableView代码上。

最好的方法是制作一个简单的UITableView,并逐步充实委托方法以及对观察者的任何调用。

Apples类引用将为您提供很长的路要走。