Удаление любимой ячейки - PullRequest
0 голосов
/ 25 декабря 2018

Hy, ребята, у меня проблема при удалении ячейки.

Сначала я добавил пользовательскую кнопку UIB на каждую ячейку, и когда кнопка выполняется, она сохраняет элемент в UserDefaults и отображается как нарисованное сердце. Img Я получаю сохраненныйэлемент в другом контроллере, но при удалении элемента изображение UIButton остается прежним.Я не знаю, как перевести кнопку в состояние по умолчанию (изображение).

Сначала я создал, когда мне грустно, пользовательский UIButton

lazy var favoriteButton: UIButton = {
  let button = UIButton(type: .system)
    button.addTarget(self, action: #selector(handleTapped), for: .touchUpInside)
    button.setImage(#imageLiteral(resourceName: "herzfavorie").withRenderingMode(.alwaysTemplate), for: .normal)
    button.tintColor = .white
     return button
    }()

этот селектор btn "handleTapped" сохраняет элемент в пользователеПо умолчанию и создает анимацию

let key = "key"



 @objc func handleTapped() {

   guard  let product = self.product else { return }

  let data = NSKeyedArchiver.archivedData(withRootObject: listOfPodcasts)
        UserDefaults.standard.set(data, forKey: key)

        var listOfPodcasts = Product.savedProducts()

        listOfPodcasts.append(product)

        self.showHeartLiked()


    }

, которая сохраняет элемент в пользовательских настройках по умолчанию и создает этот эффект в ячейке , но позже, когда я удаляю продукт в этом режиме

override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {


    let removalProduct = savedProducts[indexPath.row]

    let tableViewAction = UITableViewRowAction(style: .default, title: "Delete") { (_, _) in

       self.savedProducts.remove(at: indexPath.row)
       self.tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.automatic)

    Product.deleteProducts(product: removalProduct)

} после этой функциональной кнопки должно быть по умолчанию

кнопка должна быть по умолчанию

, но кнопка остается не по умолчанию, я надеюсь, что я объяснил это хорошо, когдакто-нибудь знает решение как после удаления вернуть кнопку в состояние по умолчанию буду благодарен

Ответы [ 3 ]

0 голосов
/ 26 декабря 2018

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

Теперь, когда пользователь нажимает кнопку, вы можете сохранить данные и сделать состояние кнопки выбранным, чтобы оно отображало заполненное изображение сердца.

также когда вы удаляете конкретную ячейку, в это время вы можете использовать Центр уведомлений для запуска уведомлений или использовать пользовательский делегат для информирования другого контроллера представления об изменениях.

0 голосов
/ 02 января 2019

Я исправил это, я проверил, одобрен ли продукт через индекс (где: ...).в cellForItemAt и после удаления продукта я использовал Notification, где я вызывал только self.collectionView.reloadData (), и он прекрасно работает

0 голосов
/ 26 декабря 2018

Используйте NotificationCenter из контроллера списка, чтобы предупредить другой контроллер представления о стиле кнопки изменения.

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