dequeueReusableCellWithIdentifier:forIndexPath: 官方文档翻译 Apple

292 阅读1分钟

image.png 实例方法

dequeueReusableCellWithIdentifier:forIndexPath:

返回一个有特定重用标识符的可重用的列表单元(table-view cell),并将这个单元加到列表中去。

声明

- (__kindOf UiTableView Cell *)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIntexPath *)indexPath;

参数

identifier重用单元的标识符,是一个字符串。这个参数不可以为nil。 indexPath重用单元的位置。总是指明数据源对象(data source object)提供给你的索引路径。本方法会基于列表中单元位置的索引路径执行一些额外的配置。

返回值

一个带有重用标识符的UITableViewCell对象。本方法总是返回有效的cell。

讨论

仅从列表数据源对象的tableView:CellForRowAtIndexPath:中调用本方法。本方法会返回具有特定类型的已经存在且有效的cell,或者会返回一个你早些时候提供的类或者storyboard创建的新cell。不要在数据源的tableView:CellForRowAtIndexPath:方法之外调用本方法。如果你需要再其他时间创建cell,调用 dequeueReusableCellWithIdentifier:而不是本方法。

重要

你必须在storyboard文件中为cell指明配对的标识符。你可能还会通过registerNib:forCellReuseIdentifier: 或者 registerClass:forCellReuseIdentifier:注册一个nib文件或者类,如果你想这么做,必须在调用这些方法前先指明配对标识符。

当从storyboard或者nib文件中创建新的cell时,本方法会通过cell的initWithCoder:方法初始化并加载这个cell对象。当通过已经注册的类(regisered class)创建cell时,本方法出会通过cellinitWithStyle:reuseIdentifier:方法初始化cell对象。对于给予nib的cell,本方法会从提供的nib文件中加载cell对象。如果存在可重用的cell,本方法会转而调用cell的prepareForReuse