Установка цвета фона аксессуара редактирования табличного представления - PullRequest
1 голос
/ 23 февраля 2020

Я пытаюсь изменить цвет фона таблицы на определенный цвет. Однако в режиме редактирования цвет фона вокруг чека меняется на белый.

enter image description here

Как установить цвет фона для представления под флажком? Любая помощь приветствуется!

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet var leftBarBtn: UIBarButtonItem!
    @IBOutlet var setlistDetailTableView: UITableView!

    var allData = [String]()
    var set = [String]()
    var isEditingSetlist = false
    var setlistIndexes = [Int]()

    override func viewDidLoad() {
        super.viewDidLoad()
        setlistDetailTableView.delegate = self
        allData = ["one", "two", "three", "four", "five"]

        // Do any additional setup after loading the view.
    }

    override func viewWillAppear(_ animated: Bool) {
        if isEditingSetlist {
            leftBarBtn.title = "Done"
            setlistDetailTableView.allowsMultipleSelectionDuringEditing = true
        }else {
            leftBarBtn.title = "edit"
            set = ["one", "three"]
            setlistDetailTableView.allowsMultipleSelectionDuringEditing = false
        }
        setlistDetailTableView.setEditing(true, animated: false)
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if isEditingSetlist {
            return allData.count
        }else{
            return set.count
        }
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! CellTableViewCell

        if isEditingSetlist {
            cell.textLabel?.text = allData[indexPath.row]
            return cell
        }else{
            cell.textLabel?.text = set[indexPath.row]
            return cell
        }
    }

    @IBAction func leftBarBtnWasPressed() {
        if isEditingSetlist {
            let indexPathsForSelectedRows = setlistDetailTableView.indexPathsForSelectedRows
            var selectedRows = [Int]()
            if indexPathsForSelectedRows != nil{
                for index in indexPathsForSelectedRows!{
                    selectedRows.append(index.row)
                }
            }

            selectedRows = selectedRows.filter { !setlistIndexes.contains($0) }


            for element in selectedRows{
                set.append(allData[element])
            }

            isEditingSetlist = false
            setlistDetailTableView.allowsSelectionDuringEditing = false
            setlistDetailTableView.allowsMultipleSelectionDuringEditing = false
            leftBarBtn.title = "Edit"
            setlistDetailTableView.reloadData()
        }else {
            isEditingSetlist = true
            leftBarBtn.title = "Done"
            setlistDetailTableView.allowsMultipleSelectionDuringEditing = true
            setlistDetailTableView.reloadData()
            for setElement in set.enumerated(){
                for all in allData.enumerated(){
                    if setElement.element == all.element{
                        setlistIndexes.append(all.offset)
                    }
                }
            }

            for index in setlistIndexes{
                setlistDetailTableView.selectRow(at: IndexPath(row: index, section: 0), animated: false, scrollPosition: .none)
            }
        }
    }


    func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
        if !isEditingSetlist {
            return true
        }else{
            return false
        }
    }

    func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
    }

    func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool {
        if !isEditingSetlist {
            return false
        }else{
            return true
        }
    }

    func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
        return .none
    }

    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        cell.backgroundColor = #colorLiteral(red: 1, green: 0.231372549, blue: 0.1882352941, alpha: 1)
    }

    func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        if !isEditingSetlist {
            return false
        }else{
            return true
        }
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...