自定义单元类与文件所有者之间有什么区别?

在官方开发人员指南(以及其他类似的指南)中,它提到您需要设置单元格的自定义类属性才能进行IBOutlet连接。 这个自定义类只是一个在@properties上带有IBOutlet标记的目标c类。 我很难理解的是,单元的这个自定义类属性与XIB的文件所有者是不同的。 从我的实验中,我可以将文件所有者留空,只要自定义类设置在单元格上,所有连接仍然可以工作(单击单元格并转到“身份检查器”并设置单元格的自定义类) 。 我认为文件所有者是UI视图唯一可以与之交互的东西。

http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/tableview_iphone/TableViewCells/TableViewCells.html

ctrl + f“使用自定义单元格内容的出口”到达文档中的位置。

我有同样的问题,并尝试了一下。 从我可以看到, Custom Class属性适用于您的XIB每个视图。 也就是说,如果您有一个具有多个UI对象的UIdevise的XIB ,则每个对象都可以有一个单独的自定义类。 自定义类也必须是您在XIB拥有的UIView对象的父类的子类。 例如,对于cell ,自定义类必须是UITableViewCell

另一方面, File Owner只有一个,对于整个XIB 。 它可以是任何类(从我可以看到)。 在我的情况作为一个例子,我有自定义的UITableViewCell带有文本字段和一些标签的XIB 。 我使用单元格作为表格的标题视图(即在UITableView对象中)。

在我的情况下,我没有创build一个自定义类为我的XIB 。 我只是使单元格的文件所有者我的UITableViewController (这是pipe理我的tableview),并将我的文本字段和标签连接到UITableViewController类中的属性。 这对我TableViewCell因为我只有一个实例我的自定义TableViewCell (它是整个表头,只有一个头)。

文件的所有者只是由Interface Builder提供的一种方便的方法,用于引用运行时实例化对象,该对象通常是与主视图关联的UIViewController

也就是说,你可以引用许多其他你想要的对象,特别是如果你有一个层次的视图或视图控制器。