- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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 Owner
和 First 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/
我在 WWDC 视频中看到过这种用法,但只是非常简短。他们没有讨论如何创建实际的 xib 文件。 我有一个名为 MyCustomCell 的 UITableViewCell 子类。在此我有几个属性 U
问题是tableview中单元格的内容没有显示!! 列出部分代码 1。在 View Controller 中 @property (strong, nonatomic) IBOutlet UITab
我正在从 nib 加载自定义子类 UITableViewCell。 我的 View Controller viewDidLoad方法使用registerNib:forCellReuseIdentifi
我一直在写一些表 View 的东西,只是遇到一些令人沮丧的事情。 我在一些地方有以下代码。 [table registerClass:[UITableViewCell class] forCellRe
在 stroryboard 中,我有 UIViewController,它包含 UITableView,在里面我创建了一个动态的 UITableViewCell 并给它一个标识符。 在 UIViewC
我可以注册一个 UITableViewCell table.registerClass(SignEntryCell.self, forCellReuseIdentifier: "SignEntry")
在我的 View Controller 中,我正在使用 [self.tableView registerNib:[UINib nibWithNibName:@"MyTableViewCell" bu
我是一名优秀的程序员,十分优秀!