2016-06-29 10 views
0

これは私が使用しているコードであり、テーブルビューでスクロールしてセルが互いに上書きされ、すべてのrepostedFromLabelが非表示にされるまで正常に動作します。再利用可能なカスタムセルがスクロールするときにデータを上書きしないようにするにはどうすればよいですか?

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    let cell = tableView.dequeueReusableCellWithIdentifier("FeedsTableViewCell", forIndexPath: indexPath) as? FeedsTableViewCell 

    if (arrayofPostsFeed[indexPath.row].postedByUser!.nickName!) != arrayofPostsFeed[indexPath.row].ownedByUser!.nickName! { 
     cell!.repostedFromLabel.text! = "Reposted From \(self.arrayofPostsFeed[indexPath.row].postedByUser!.nickName!)" 
    } else { 
     cell!.repostedFromLabel.hidden = true 
    } 
} 

再利用可能なセルが互いにオーバーライドしないようにするにはどうすればよいですか?

+0

完全にそれらを設定することにより、それらを適切に再利用... – Wain

+0

トライセル!.repostedFromLabel.hidden = falseのあなたの状態は、それが働いた – stosha

答えて

1

FeedForTableViewCellでprepareForReuse関数を実装して、repostedFromLabelの隠しプロパティをリセットすることができます。次のようなものがあります:

override func prepareForReuse() { 
    self.repostedFromLabel.hidden = false 
} 

現時点では、値をリセットしていないため、セルを再利用すると混乱します。

+0

おかげで真であれば! –

0
 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

     let cell = tableView.dequeueReusableCellWithIdentifier("FeedsTableViewCell", forIndexPath: indexPath) as? FeedsTableViewCell 
    if (arrayofPostsFeed[indexPath.row].postedByUser!.nickName!) != arrayofPostsFeed[indexPath.row].ownedByUser!.nickName! { 
     cell!.repostedFromLabel.text! = "Reposted From \(self.arrayofPostsFeed[indexPath.row].postedByUser!.nickName!)" 
     cell!.repostedFromLabel.hidden = false 
     }else { 
     cell!.repostedFromLabel.hidden = true 
     } 
関連する問題