Таблица редактирования таблицы в Swift - PullRequest
0 голосов
/ 12 октября 2019

У меня есть tableView, так что, когда вы проводите пальцем влево по ячейке, он дает вам возможность удалить ячейку, у меня есть так, что только оригинальный плакат ячейки может фактически удалить ячейку, но я хочу, чтобыон не позволяет вам провести пальцем влево, чтобы выбрать опцию удаления, если пользователь не является оригинальным постером ячейки. Например, на снимке экрана кнопка «Удалить» появляется, когда я проведу по ячейке влево, но мой код не позволяет удалить ее, потому что я не являюсь исходным плакатом. Я хочу, чтобы кнопка удаления не появлялась, когда я проведу пальцем влево по сообщению, которое мне не принадлежит. enter image description here

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
        if(editingStyle == .delete && messageArray[indexPath.row].postedBy == (Auth.auth().currentUser?.uid)!){
            DataService.instance.removeMessage(withKey: messageArray[indexPath.row].key)
            messageArray.remove(at: indexPath.row)
            tableView.reloadData()
        }
    }

Ответы [ 2 ]

3 голосов
/ 12 октября 2019

Добавьте это:


    func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
        if messageArray[indexPath.row].postedBy == (Auth.auth().currentUser?.uid)! {
            return .delete
        }
        return .none
    }

Используйте func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle, чтобы решить, какую ячейку можно удалить.

0 голосов
/ 12 октября 2019

Поставим условие, что ячейка может быть отредактирована в этом методе

 func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
       // This mean if the post is not original post then the delete button will appear
        let postCanBeDeleted = !messageArray[indexPath.row].isOriginalPoster
        return postCanBeDeleted
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...