UITableViewCell 재사용에 대해(샘플 앱과 간단 해설)
9519 단어 Swift
이번 내용
UITableViewCell
의 재사용에 대해 조사했을 때 작성한 샘플 앱이 있었으므로, 간단한 해설과 코드입니다. 샘플 앱
UITableViewCell
는 배경색을 .systemGreen
로 하고, cell.detailTextLabel.text
에 재사용되기 직전에 cell.textLabel.text
에 표시하고 있던 값을, 표시해 어느 cell
가 어디에 재사용되었는지를 볼 수 있습니다. required init?(coder: NSCoder){ super.init(coder: coder) }
는 Cell의 인스턴스를 생성하는 타이밍에 처리가 작동합니다. prepareForReuse()
는 UITableView
가 가지고 있는 ReuseQueue
에서 Cell
(아직 tableView에 셀이 표시되는 것은 아닙니다) tableView
에 Cell
가 표시되는 타이밍에서 처리가 작동하는 것이 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {}
입니다. import UIKit
class ViewController: UIViewController {
let tableView = UITableView()
var count = Int()
override func viewDidLoad() {
super.viewDidLoad()
tableView.frame = CGRect(x: view.frame.minX, y: view.frame.minY, width: view.frame.width, height: view.frame.height)
tableView.register(CustomCell.self, forCellReuseIdentifier: "cell")
view.addSubview(tableView)
tableView.dataSource = self
}
}
extension ViewController:UITableViewDataSource{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 100
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
count = count + 1
print(count)
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomCell
if cell.textLabel?.text != ""{
cell.detailTextLabel?.text = cell.textLabel?.text
}
cell.textLabel?.text = String(indexPath.row)
return cell
}
}
class CustomCell:UITableViewCell{
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: .value1, reuseIdentifier: reuseIdentifier)
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override func prepareForReuse() {
super.prepareForReuse()
if textLabel?.text != ""{
detailTextLabel?.text = ""
detailTextLabel?.text = textLabel!.text
}
backgroundColor = .systemGreen
print("reuse")
}
}
끝
지적, 질문 등 있으면, 코멘트까지 부탁드립니다.
Reference
이 문제에 관하여(UITableViewCell 재사용에 대해(샘플 앱과 간단 해설)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/HiroUrata/items/504b78dae6b6c40c202a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(UITableViewCell 재사용에 대해(샘플 앱과 간단 해설)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/HiroUrata/items/504b78dae6b6c40c202a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)