2

很抱歉在这里问这种简单的问题。

但我是 iOS 开发的新手 :( 我也在尝试在谷歌上找到我的答案,但我不明白。

UITableView我的问题是创建整个 TableView 后调用哪个协议方法?

我的意思是当创建UITableView然后调用UITableViewDataSource方法时,例如,

配置表视图

– tableView:cellForRowAtIndexPath:  required method
– numberOfSectionsInTableView:
– tableView:numberOfRowsInSection:  required method
– sectionIndexTitlesForTableView:
– tableView:sectionForSectionIndexTitle:atIndex:
– tableView:titleForHeaderInSection:
– tableView:titleForFooterInSection:

ETC...

但我想知道在没有任何 UITableView 交互的情况下创建整个 TableView(或调用上述方法)后调用 UITableView 的哪个方法?

所以,请帮帮我

4

2 回答 2

1

要创建 UITable,必须调用所有必需的方法。IE

– tableView:cellForRowAtIndexPath:  
– tableView:numberOfRowsInSection: 

当然,这些是数据源方法。但是在创建表之后,在您重新加载表之前,不会调用此方法。如果您想要在创建 tableview 后调用的方法,您必须寻找委托方法,例如:

– tableView:willSelectRowAtIndexPath:
– tableView:didSelectRowAtIndexPath:
– tableView:willDeselectRowAtIndexPath:
– tableView:didDeselectRowAtIndexPath:
于 2012-09-25T06:13:36.550 回答
1

由于 Apple 的文档中没有指定顺序,因此您不能安全地假设它们总是以相同的顺序被调用,并且在您的实现中做出这样的假设通常不是一个好主意。

例如,并非对所有行都调用 cellForRowAtIndexPath。它仅对可见行调用,然后在用户滚动到其他行时调用它们。旧行在离开屏幕时也会被销毁,如果用户向上滚动,它将再次请求单元格。

但总的来说,我们可以假设一些调用顺序:

– numberOfSectionsInTableView:        (...Optional method...)
– sectionIndexTitlesForTableView:     (...Optional method...)
– tableView:titleForHeaderInSection:  (...Optional method...)
– tableView:titleForFooterInSection:  (...Optional method...)
– tableView:numberOfRowsInSection:    (...Compulsory method...)
– tableView:cellForRowAtIndexPath:    (...Compulsory method...)
于 2012-09-25T05:57:37.473 回答