テーブルを含む再利用可能なxibファイルを作成し、次のTableView.swift
ようなファイルにロードしています。
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
Bundle.main.loadNibNamed("TableView", owner: self, options: nil)
}
私はxibファイルをロードする方法について混乱していないことを明確にするためにこれに言及しているだけです
にRootViewController.swift
ビューを追加し、UIViewController
そのビューに次のようなカスタムクラスを指定することで、ファイルに再利用可能なビューを簡単にロードできます。
次に、次のようにそのビューのアウトレットを作成します。
だからここに私の質問があります:
次のようなビューを単純に追加できないのはなぜですか。
let tableViewView = TableView()
そうすると、完全には理解できないエラーが発生します。
フレーム初期化子もオーバーライドする必要があります。
TableView
クラスがUITableView
サブクラスであるとすると、次のようになります。
class TableView: UITableView {
override init(frame: CGRect, style: UITableViewStyle) {
super.init(frame: frame, style: style)
// any additional setup code
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
// any additional setup code
}
}
テーブルビューをプログラムでインスタンス化しようとしているため、コーダーを使用した初期化子だけでなく、フレームの初期化子を指定する必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加