- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
Apple 的文档中提到 indexPath
参数:
The index path specifying the location of the cell. The data source receives this information when it is asked for the cell and should just pass it along. This method uses the index path to perform additional configuration based on the cell’s position in the table view.
但是 register(Class|Nib):forCellReuseIdentifier:
只指定要使用的重用标识符,而不是部分或一组索引路径。
我想也许 UITableViewCell
有某种方法可以获取索引路径,所以它可以,比如说,如果在一个部分的第一行,就可以绕过它的角落,但我没有看到它。在创建时,它得到的只是它的样式和重用标识符 (initWithStyle:reuseIdentifier:
);在重用时,它只被告知 prepareForReuse
。
鉴于旧的 dequeueReusableCellWithIdentifier:
仍然受支持,如果它不能依赖有机会这样做的话,它可能正在做什么样的基于索引路径的配置,无论如何?
我查看了 Table View Programming Guide,但它自 iOS 5 以来一直没有更新。
最佳答案
dequeueReusableCellWithIdentifier:
和dequeueReusableCellWithIdentifier:indexPath:
之间最重要的区别是它们是不同的方法!因此他们可以有不同的行为,他们也确实如此。这与 indexPath 无关,真的;我们只需要一种方法来区分它们。
特别是,如果您调用 dequeueReusableCellWithIdentifier:indexPath:
,这表明您正在使用新的 iOS 6 注册和出列系统。所以,如果你没有注册这个标识符,你会得到一个很好的崩溃和解释问题的日志消息。这个方法永远不会返回 nil;它总是返回一个单元格,要么通过创建一个新单元格,要么通过重复使用一个单元格。
另一方面,简单明了的 dequeueReusableCellWithIdentifier:
是旧的,必须向后兼容。如果你还没有注册这个标识符,它不会提示:它只会返回 nil,让你无所适从。你必须自己创建单元格,就像过去的糟糕日子一样。
编辑:但另请参阅@svena 的回答!新方法(使用 indexPath:
)还有第二个我不知道的优势:单元格在返回给您时大小正确。
关于ios - dequeueReusableCellWithIdentifier :forIndexPath: get used?的indexPath在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12714737/
最近想根据indexPaths删除单元格,所以函数的入参是[IndexPath]类型,需要根据把[IndexPath]拆分成几个数组indexPath.section,有什么简单的方法吗?例如 ind
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我有一个 TableViewController,其中包含使用 CoreData 的数据条目列表。我还有带 TextView 的 ViewController。我已经完成了对项目的添加、保存和删除等操
我正在编写一个 UICollectionViewLayout 子类。 我知道 Collection View 有多少个部分...numberOfSections。 我知道每个部分有多少项目...num
这是我的 collectionViewCell 图像。 我在 tableViewCell 中有 collectionView 并且在 collectionViewCell 中有一个按钮,它完全符合我的
这个问题在这里已经有了答案: Passing data between view controllers (45 个答案) 关闭 3 年前。 我在 UIViewController 中定义它并尝试在
我在我正在开发的应用程序中的表格单元格上设置长按手势时遇到了一些问题。我已经尝试了三种不同的配置,但还没有一种能够成功运行。 场景 1) 我将 UILongPressGestureRecognizer
在我更新到 Xcode 7.2 后,弹出一个错误提示“下标的使用不明确”: func tableView(tableView: UITableView, cellForRowAtIndexPath i
我在 UITaleViewCell 中有一个 UIImageView,我向 UIImageView 添加了一个点击识别器。 - (IBAction)ui_tapped:(UITapGestureRec
我正在尝试追踪应用程序中的严重崩溃。 我有一些代码可以有效地做到这一点: if let indexPath = self.tableView.indexPath(for: myTableViewCel
我有一个 UITableView,一个自定义单元格的自定义类和我的 ViewController swift: private var model_firma = [Firme]() var firm
我有一个 Tableview,显示一个包含 7 行的部分,我想要做的是,当我按第 0 行时,我将其发送到另一个 View ,表中的所有信息都是通过使用修复的代码加载的,我的问题是如何在“prepare
我注意到要禁用表格单元格的突出显示功能,您可以使用以下方法: override func tableView(tableView: UITableView, didSelectRowAtIndexPa
这个问题在这里已经有了答案: Issue Detecting Button cellForRowAt (3 个答案) 关闭 2 年前。 使用此代码,我只获得具有 indexpath.row 如何从中
我正在开发一个待办事项应用程序。在我的应用程序中,我按下复选框按钮来删除一行。我编写这段代码是为了将 indexPath.row 传递到我的复选框按钮中: cell.checkbox.tag = in
我有一个像这样的UIViewController: class ViewController { override func viewDidLoad() { super.vie
不知道你有没有遇到过这种情况,我用的是该函数 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPa
UITableViewController 的 numberOfSection 和 numberOfRowsInSection 被调用,但 cellForRow 没有。可能是什么原因 ?下面是 tab
我是 Stack Overflow 的新手,所以请保持温柔! 我正在设计一个应用程序,它从 firebase 检索对象并在 firebase 中显示它们。 我在这里配置firebase: func a
我手头有一个非常原始的问题,那就是当我将点击手势识别器添加到我的自定义单元格时,我无法调用 didSelectRowAt 方法。 我的代码如下: import UIKit class Language
我是一名优秀的程序员,十分优秀!