2016-04-15 12 views
0

私はプログラムでUITableViewとUITableViewCellを作成しました。私のViewControllerで - viewDidLoad私はない:なぜUITableViewは私のcustomCellを呼び出さないのですか?

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = self.tableView.dequeueReusableCellWithIdentifier("newsCell", forIndexPath: indexPath) as! newsCell 

    return cell 
} 

マイnewsCellクラス(まもなく):

self.tableView.delegate = self 
self.tableView.dataSource = self 
self.tableView.registerClass(newsCell.self, forCellReuseIdentifier: "newsCell") 

後でとしてそれを使用

class newsCell: UITableViewCell { 
    let scoreLabel = UILabel() 

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
    print("init") 

    self.addSubview(self.scoreLabel) 
} 
} 

を私はしてもログのinitを得ることはありません、私のカスタムセルはまったく呼び出されません。問題は何ですか?

+0

私はあなたの初期化コードをawakeFromNib()の代わりに* init * -methodに移すべきだと思います。 – TMob

+0

はい。私はそう思う。 'awakeFromNib'はNibファイルから作成すると起動します。 –

+1

これを見てください:http://stackoverflow.com/a/15239265/3981769 – TMob

答えて

2

は、以下のコードを試してみてください。

override init(style: UITableViewCellStyle, reuseIdentifier: String?) { 
    super.init(style: style, reuseIdentifier: restorationIdentifier) 
} 

required init?(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

と強制アンラップは危険です。

if let cell = self.tableView.dequeueReusableCellWithIdentifier("newsCell", forIndexPath: indexPath) as? newsCell{} 
+1

あなたの答えは本当に良い状態ではありません。あなたの文章やコード編集を改善するかもしれません。 – TMob

+0

申し訳ありませんが、私の悪い、私はstackoverflowのタグに精通していません。私はこれをやり直すことはないでしょう、それは専門家ではありません –

+0

問題ありません。訂正ありがとう – TMob

関連する問題