【Swift】UITableView의 셀에 체크 마크를 넣는 방법

9878 단어 SwiftSwift3.0

단일 선택



데모





코드



ViewController.swift
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 = falsetrue로 변경하면 됩니다.

좋은 웹페이지 즐겨찾기