今回の記事は、TableViewをドラッグしている際に下に行くほど以前出現した画像が重複して出現してくることがあります。この現象を防ぐ為の方法に関して初心者にも分かりやすいようにまとめますので是非参考にしてみてください。
TableView画像が繰り返し出現する原因
こちらの原因はTableviewのcellの使用方法が原因です。Tableviewはcellを使い回すという操作があります。例えば見た目上見える範囲にあるTableviewのcell以外の行ではcellが再利用されていることが原因です。
図に表すと下記のようになっています。

上記の画像のように画面上で見えている範囲以外ではcellが再利用されていることがわかると思います。その為一番上の0番が見えなくなりページの見えていない範囲にスクロールすると再度、0から繰り返してcell表示されてしまします。
let cell = tableView.dequeueReusableCell(withIdentifier: "cellのidentifer", for: indexPath as IndexPath) as UITableViewCell
ここが実はcellを再利用するという内容になっております。
ではこれをどのように回避するかに関して下記で取り上げていきます。
TableView画像の繰り返し出現を回避する方法
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cellのidentifer", for: indexPath as IndexPath) as UITableViewCell
cell.label = nil //ラベルなら
cell.image = nil //画像なら
//以下コードを記載
}
tableview関数の読み込み時に初期化みたいな感じで画像などはないことを明記します。おれを行うことで下記再度載せますが画像のような再利用は起きずにTableViewを表示できます。

関数というよりは普段使っているものをよく知ることは大事だと改めて感じました。
今回の記事は以上です。他にも多数のSwift関連の記事を記載しているので気になる方は是非参考にしてください。
コメント