【问题标题】:UITabelViewCell from XIB to be instantiated more times来自 XIB 的 UITabelViewCell 将被实例化更多次
【发布时间】:2016-08-03 19:27:30
【问题描述】:

我在 XIB 中有一个单元格模板,我想将其与自定义 UITableViewCell 的单独实例一起使用,并具有不同的重用标识符。问题是 dequeueReusableCellWithIdentifier 重用具有相同标识符的单元格,但我希望每次都创建一个新单元格(实际上我使用的单元格不超过 4 个,因此不会浪费太多内存)。我尝试使用 NSBundle.mainBundle().loadNibNamed (Swift),但返回的单元格未正确显示。看起来该函数没有返回 UITableView 内大小和对齐方式正确的单元格。有没有办法让两个单独的单元格实例取自同一个 XIB,它们具有与 dequeueReusableCellWithIdentifier 返回的相同特征?我的意思是,我不想重复使用单元格,但每次都是新的,并且在表格中的位置正确。

【问题讨论】:

    标签: ios swift uitableview


    【解决方案1】:

    如果您有固定数量的单元格,如您所说,您只想使用四个单元格,那么您可以只使用静态单元格。或者,您还可以使用四个自定义视图来满足您的需求。如果只需要四个(固定数量的单元格)单元格,则不需要 tableview。

    【讨论】:

    • 非常感谢您非常及时的回答。与此同时,我自己也找到了解决方案。在我的情况下,我需要 4 个单元格,但解决方案比看起来更容易。我在 XIB 中定义了一个单元格,并且在 XIB 中设置了一个重用标识符,当我调用时,该标识符阻止了分配一个新的标识符
    • 我通过删除设置到 XIB 中的单元格的重用标识符来解决问题。通过这种方式,我可以在调用 tableView.registerNib 时动态分配标识符,这将解决问题,因为我有 2 个来自同一个 XIB 但重用标识符不同的单元格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    相关资源
    最近更新 更多