2016-05-14 5 views
0

私はTableViewにダイナミックプロトタイプを持ち、最初のセルは他のセルとは異なる背景にします。ダイナミックなTableView内のただ1つのセルの背景を設定します

私の試みは、これが実際に働いている種類の

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

if indexPath.row == 0 { 
    cell.backgroundView = UIImageView(image: UIImage(named: "firstCellBackground")) 
} 

を追加しました。最初のセルは異なるバックグラウンドを取得しますが、すぐにスクロールを開始すると、他のいくつかのセルもバックグラウンドを取得します。 ?:(

任意の提案は

+1

あなたは半ロジックを使用することはできません。あなたは、完全にその(同じセルは、多くの異なる行のために使用されるため、背景ビューは、_every_行のためにあるものを述べなければなりません。なぜあなたは他の細胞がバックグラウンドを得るのを見るのですか?) – matt

答えて

2

UITableViewCellインスタンスは通常、パフォーマンス上の理由のために再利用されている。例えば最初の行0かもしれない後に表示行11を表示し、そのセルあなたはUITableViewCellのサブクラスを使用する場合は、あなたがprepareForReuse()を実装することができます。 backgroundViewをクリアすることができます。また、これを試すことができます。

if indexPath.row == 0 { 
    cell.backgroundView = UIImageView(image: UIImage(named: "firstCellBackground")) 
} else { 
    cell.backgroundView = nil 
} 
+1

どちらの提案も機能しています。 – eLwoodianer

関連する問題