【Swift】UITableView의 셀에 체크 마크를 넣는 방법
단일 선택
데모
코드
ViewController.swiftimport UIKit
class CustomerSettingViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
let fruits = ["Orange","Lemon", "Peaches", "Raspberry", "Papaya", "Avocado", "Blueberries", "Apricot", "Mango"]
override func viewDidLoad() {
super.viewDidLoad()
let barHeight: CGFloat = UIApplication.shared.statusBarFrame.size.height
let displayWidth: CGFloat = self.view.frame.width
let displayHeight: CGFloat = self.view.frame.height
let tableView: UITableView = UITableView(frame: CGRect(x: 0, y: barHeight, width: displayWidth, height: displayHeight - barHeight))
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
tableView.dataSource = self
tableView.delegate = self
// trueで複数選択、falseで単一選択
tableView.allowsMultipleSelection = false
tableView.tableFooterView = UIView(frame: .zero)
self.view.addSubview(tableView)
}
// セルが選択された時に呼び出される
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at:indexPath)
// チェックマークを入れる
cell?.accessoryType = .checkmark
}
// セルの選択が外れた時に呼び出される
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at:indexPath)
// チェックマークを外す
cell?.accessoryType = .none
}
// セルの数を返す
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return fruits.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = "\(fruits[indexPath.row])"
// セルが選択された時の背景色を消す
cell.selectionStyle = UITableViewCellSelectionStyle.none
return cell
}
}
다중 선택
데모
코드
위 코드의 tableView.allowsMultipleSelection = false
를 true
로 변경하면 됩니다.
Reference
이 문제에 관하여(【Swift】UITableView의 셀에 체크 마크를 넣는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Simmon/items/ee7b9fcd046ec6a9dbdf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import UIKit
class CustomerSettingViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
let fruits = ["Orange","Lemon", "Peaches", "Raspberry", "Papaya", "Avocado", "Blueberries", "Apricot", "Mango"]
override func viewDidLoad() {
super.viewDidLoad()
let barHeight: CGFloat = UIApplication.shared.statusBarFrame.size.height
let displayWidth: CGFloat = self.view.frame.width
let displayHeight: CGFloat = self.view.frame.height
let tableView: UITableView = UITableView(frame: CGRect(x: 0, y: barHeight, width: displayWidth, height: displayHeight - barHeight))
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
tableView.dataSource = self
tableView.delegate = self
// trueで複数選択、falseで単一選択
tableView.allowsMultipleSelection = false
tableView.tableFooterView = UIView(frame: .zero)
self.view.addSubview(tableView)
}
// セルが選択された時に呼び出される
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at:indexPath)
// チェックマークを入れる
cell?.accessoryType = .checkmark
}
// セルの選択が外れた時に呼び出される
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at:indexPath)
// チェックマークを外す
cell?.accessoryType = .none
}
// セルの数を返す
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return fruits.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = "\(fruits[indexPath.row])"
// セルが選択された時の背景色を消す
cell.selectionStyle = UITableViewCellSelectionStyle.none
return cell
}
}
데모
코드
위 코드의
tableView.allowsMultipleSelection = false
를 true
로 변경하면 됩니다.
Reference
이 문제에 관하여(【Swift】UITableView의 셀에 체크 마크를 넣는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Simmon/items/ee7b9fcd046ec6a9dbdf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)