他の多くの人と同じように、Eureka にカスタム行を実装したいと考えています。
そこで、チュートリアルに従い、Eureka-Community によって提供されたいくつかの例を調べました。
これは私のコードです:
open class EditorTextCell: Cell<Field>, CellType {
@IBOutlet weak var questionLabel: UILabel!
@IBOutlet weak var questionField: UITextField!
// TODO
}
行は次のとおりです。
public final class EditorTextRow: Row<EditorTextCell>, RowType {
required public init(tag: String?) {
super.init(tag: tag)
cellProvider = CellProvider<EditorTextCell>(nibName: "EditorTextCell")
}
}
そして、私のデータ構造は次のように単純です。
public class Field: Object {
dynamic var question = ""
dynamic var mandatory = false
}
私が理解している限り、ユーザーの操作後にカスタム行が保持/生成するデータを保持するデータ構造が必要です。私の場合、このカスタム データ構造は Realm オブジェクトなので、再利用してみませんか? その後、カスタム データ構造を、Cell<MyDataStructure>
定義しているカスタム セルに渡す必要があります。カスタム行は、ペン先をロードして、それを使用するセルを宣言するだけRow<MyCustomCell>
です。それで全部です。正しい?
form.last! <<< EditorTextCell()
. _
公式ドキュメントを読んで、次のように述べ
Custom rows need to subclass Row<CellType> and conform to RowType protocol. Custom cells need to subclass Cell<ValueType> and conform to CellType protocol.
ています。また、スタックオーバーフローのリンクも見つけました。これは、私がすでにフォローしているアドバイスを提供します。これは公式の例です。私は基本的に彼らが何をしたかを書き留めただけですが、それでもうまくいきません。
なんで?
私が見る唯一の違いは、それらが別のアンダースコア型を書き、Row<MyCustomCell>
そこで理解できないことを行うことです。github の公式ドキュメントにサブクラス化して採用するのに十分であると記載されている場合、なぜそれが必要なのかわかりませRow<MyCustomCell>
んRowType
。