我需要帮助正确地继承现有行,所以我只能更改UI,而不是功能 . 我想要子类的行类型是TextRow .

再次,我 only 想要更改 UI 而不是功能 .

Eurek提到here这样做的方法,但我可以't seem to figure out the correct way to do it. I'喜欢形成如下行 .

根据尤里卡的步骤:


Subclassing cells using the same row

有时我们想要更改其中一行的UI外观,但不更改行类型和与一行关联的所有逻辑 . 如果您使用从nib文件实例化的单元格,目前有一种方法可以执行此操作 . 目前,Eureka的核心行都没有从nib文件中实例化,但EurekaCommunity中的一些自定义行,特别是移动到那里的PostalAddressRow .

What you have to do is:

  • 创建包含要创建的单元格的nib文件 .

  • 然后将单元格的类设置为要修改的现有单元格(如果要更改与纯UI不同的内容,则应将该单元格子类化) . 确保正确设置该类的模块

  • 将插座连接到您的 class

  • 告诉你的行使用新的nib文件 . 这是通过设置cellProvider变量来使用此笔尖来完成的 . 您应该在初始化器中执行此操作,在每个具体实例化中或使用defaultRowInitializer . 例如:

<<< PostalAddressRow(){$ 0.cellProvider = CellProvider(nibName:“CustomNib”,bundle:Bundle.main)}

您也可以为此创建一个新行 . 在这种情况下,尝试从与要更改的行相同的超类继承以继承其逻辑 .

There are some things to consider when you do this:

如果您想查看示例,请查看在其示例中使用自定义nib文件的PostalAddressRow或CreditCardRow . 如果您收到错误说 Unknown class <YOUR_CLASS_NAME> in Interface Builder file ,则可能是您必须在代码中的某个位置实例化该新类型以在运行时加载它 . 在我的情况下调用let t = YourClass.self帮助了 .


基本上我需要帮助的是设置正确的xib / nib和类以在表单中使用 . 谢谢 .