2017-02-19 2 views
0

私は、各オブジェクトの値をテーブルビューのセルに取り込む必要があるCoreDataエンティティを持っています。ストーリーボードでは、行を追加してセルのスタイルを個別に変更できますが、この場合はオブジェクトの数に基づいてセルを処理していますので、プログラムで行を挿入してセルスタイルを変更する必要があります。プログラムでUITableViewControllerに行を挿入します

enter image description here

私はプログラム的に行を挿入するためのコードをforeachループが必要であることを推測しています。誰もこれを達成する方法を知っていますか?

+0

あなたは何をしようとしていますか?説明できますか?あなたは何を望んでいるのかの参照を持っていますか?いくつかのユースケースについて説明できますか?質問の説明から、あなたが何を求めているのかを正確に理解することはできません。 – Adeel

+0

@Adeel私がしたいのは、オブジェクトの値、名前、スコアをセルに追加することです。私は多くのオブジェクトを持っているので、セルを追加するにはループが必要です。 – iamhx

+0

述語を使用してコアデータからオブジェクトをフェッチするだけで済みます。 _cellForRow:_メソッドで、どのセルを返すべきかを決めます。特定のタイプのセルをグループ化する場合は、複数のセクションを使用できます。 1つのセクションのみを使用する場合は、属性に基づいてコアデータからオブジェクトを照会し、それらをアレーに追加することができます。これまでに何を試してみましたか、どのような問題を解決できませんでしたか? – Adeel

答えて

1

UITableViewDataSourceを実装する必要があります。詳細については、API Referenceを参照してください。 UITableViewでコアデータを使用する場合は、NSFetchedResultsControllerもご覧ください。

+0

あなたは大丈夫です。私はちょっとグリッドビュー(この場合はテーブルビュー)にデータを入力するC#Windowsフォームの方法に固執しています。細胞を追加する方法がiOSにとって非常に複雑であることを知らなかった。 – iamhx

1

UITableViewDataSourceメソッドを使用する必要があります。あなたのクラスにdataSourceプロトコルを追加し、それに従ってください。探している方法は次のとおりです。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 

おそらく、UITableViewDelegateプロトコルに準拠することもできます。

このような何か:あなたはoverride func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Intreturnあなたのオブジェクト配列の数を実装する必要が

class MyClass: UITableViewDataSource, UITableViewDelegate { 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
//Do your thing 
} 

//Conform to rest of the delegate and datasource methods too. Click on UITableViewDataSource to see the documentation 
1

を、その後、セルの再利用識別子を設定し、コードを追加します。

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") //replace "Cell" with your identifier 
    cell.textLabel = yourTitleArray[indexPath.row] 
    cell.detailTextLabel = yourSubtitleArray[indexPath.row] 
    return cell! 
} 

ドン」 yourTitleArrayyourSubtitleArrayを配列に置き換えることを忘れないでください。

関連する問題