gpt4 book ai didi

iphone - UITableView注册Nib :forCellReuseIdentifier:

转载 作者:行者123 更新时间:2023-12-03 18:12:27 25 4
gpt4 key购买 nike

我在 WWDC 视频中看到过这种用法,但只是非常简短。他们没有讨论如何创建实际的 xib 文件。

我有一个名为 MyCustomCell 的 UITableViewCell 子类。在此我有几个属性 UILabels、UIImageViews 等...全部设置为 IBOutlets。

现在,在我的 xib 文件中...

我应该将什么设置为文件的所有者?我在哪里引用我的 MyCustomCell 类,这是文件的所有者吗?

设置文件所有者后,如何将其与 xib 的 Root View 链接?

我尝试了一些设置,但在使用时总是出现错误。

哦,我用来注册它的代码是......

self.cellNib = [UINib nibWithNibName:@"MyCustomCell" bundle:nil];
[self.tableView registerNib:self.cellNib forCellReuseIdentifier:@"CustomCell"];

谢谢

最佳答案

通常在这种情况下您不必担心文件的所有者,因为当 tableView从提供的/关联的 UINib 实例化单元格以及 reuseIdentifier 。它将加载 Nib 的所有顶级对象,并且仅使用类 UITableViewCell 的第一个顶级对象 (或者可能只是第一个顶级对象,无论类如何?但一般来说,无论如何,您的 XIB 中都只有 UITableViewCell — 不包括 File's OwnerFirst Responder,它们只是“代理”)。

事实上,tableView将尝试使单元出列,如果找不到可重用的单元,它将使用 UINib 创建一个新单元你提供的。它将与此类似:

NSArray* topLevelObjects = [self.cellNib instantiateWithOwner:nil options:0];
cell = [topLevelObjects objectAtIndex:0];

(这当然是一个简化版本,只是为了展示这个想法,我不知道它是否真的调用了这些确切的行,但它应该非常接近)

所以File's Owner在这种特殊情况下不使用,您只需放置一个简单的自定义 UITableViewCell作为 XIB 文件中现有 File's Owner 旁边的唯一顶级对象安夫First Responder (同样,这只是“代理”/“外部对象引用”,不会被实例化,也不会成为 instantiateWithOwner:options: 返回的顶级对象的一部分)。

<小时/>

如果仍然不起作用:

  • 确保您正确填写了 reuseIdentifier您的UITableViewCell在 IB 中(在 IB 中选择单元格后,在右侧的“对象检查器” Pane 中),并且对此 reuseIdentifier 使用完全相同的值IB 中的属性是您在代码中使用的属性
  • 如果仍然不行,请提供更多信息,尤其是您遇到的错误、日志消息或异常类型。

关于iphone - UITableView注册Nib :forCellReuseIdentifier:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12590471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com