2017-04-01 11 views
2

私のアプリでは、xibファイルを使用してカスタムtableView Cellを使用しています。私は承知していUITableViewとカスタムUITableViewCellを使用して.xib

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let transaction = statementArray[indexPath.row] 
    let cell = Bundle.main.loadNibNamed("StatementCell", owner: self, options: nil)?.first as! StatementCell 



    cell.transAmount.text = String(transaction.transAmount) 
    cell.transDesc.text = transaction.transDesc 
    cell.transFees.text = String(transaction.transFees) 

    return cell 
} 

:私は次のように私は、テーブルビューのセルを移入して表示するために使用するコードがある私のViewControllerで

私TableViewCellクラスにラベルなど.xibファイルのアウトレットを作成しますTableViewが動作する方法は、画面から外れるセルを再利用することです。彼らは私の.xibを読み込んで、セルを正しく読み込む方法ですか?または、コードに何かを追加する必要がありますか?

+0

.xibを使用する特別な理由はありますか? Interface Builderの同じテーブルビューに複数のセルを作成することができます。 – vadian

+0

データがある場合には異なるセルを使用するため、.xibを使用しています – pavlos

+0

どこが問題ですか?異なるUI要素、サイズなどを使用して、同じテーブルビューで好きなだけ多くのセルを作成できます。セルをテーブルビューにドラッグし、識別子と(オプションの)クラスを割り当てます。余分な.xibを使用するよりもはるかに便利です。 – vadian

答えて

0

さらにもう一つは、viewDidLoadメソッドに再利用識別子のクラスを登録する必要があります。

YourTable.registerclass(tablecell, forCellReuseIdentifier: "identifier" 

必要なすべてのアウトレットを接続してください。テーブルビュー

let str1 : NSString = "StatementCell" 

tableView.register(UINib(nibName: "StatementCell", bundle: nil), forCellReuseIdentifier: str1 as String) 

+0

このコード行は、セルを再利用するためにカスタムセルクラスを登録するのに基本的なものですか? – pavlos

+0

はい、私のコードで私も使用しました....これを適用する前に私はいくつかのクラッシュを得て、それを使用した後はうまく動作します.... –

0

最初に登録カスタムセルnibCalssは今tableviewcell

let cell1:StatementCell = tableView.dequeueReusableCell(withIdentifier: str1 as String) as! StatementCell! 

今すぐtableviewcell出口コレクションにアクセス初期化します。

1

あなたがのUITableView

yourTableView.register(UINib(nibName: "StatementCell", bundle: nil), forCellReuseIdentifier: "cellIdentifier") 

でカスタムセルを登録する必要がありますまず、あなたが

let cell = tableView.dequeueReusableCell(withIdentifier: "cellIdentifier", for: indexPath) as! StatementCell 
cell.textLabel?.text = "Sample Project" 
return cell 

を記述する必要がcellForRowAtのUITableViewデリゲートメソッドでは、今あなたがcell.propertyName

であなたのUITableViewCellのプロパティにアクセスすることができます

あなたは "cellIdentifier"と "forCellReuseIdentifier"の両方の値が同じでなければならないことに注意する必要があります。

関連する問題