Ответы пользователя по тегу Swift
  • Как решить ошибку Invalid update: invalid number of items in section 0 в collectionView на iOS12?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Ответ был дан на SO.

    Where are the batch updates (plural)?

    You don't need performBatchUpdates, the method is only useful for multiple simultaneous updates. Delete the card in the database, on success remove the card from the data source array and delete the item – animated – in the collection view.

    My suggestion assumes that the current index path is available which itemIndex derives from
    item = self.cards[itemIndex]
    
    self.db.collection(K.FStore.collectionName!).document((item?.idCard)!).delete() { err in
       if let error = err {
          print("An error occurred", error)
       } else {
          self.cards.remove(at: itemIndex)
          self.collectionView.deleteItems(at: [indexPath])
       }
    }




    Ссылка на SO: тут ответ

    Конечно, не весь ответ помог, но именно из-за неверного метода у меня выходила ошибка.
    Ответ написан
    Комментировать
  • Почему cancelButton в searchBar не успевает переименоваться?

    AntonBrock
    @AntonBrock Автор вопроса
    screen light
    Все было оказывается на столько просто ...
    Для того чтобы поменять название на кнопке и не трогать потоки во ViewDidLoad()
    searchBar.setValue("Отменить", forKey: "cancelButtonText")

    cancelButtonText - отвечает за это кнопку.
    А дальше уже в методе делегата просто показывает саму кнопку, как и было у меня:
    searchBar.setShowsCancelButton(true, animated: true)
    searchBar.showsCancelButton = true


    По поводу проблемы:
    Я поставил смену названия, которое было в самом вопросе в другой поток
    DispatchQueue.main.async{ // тут менял название}, а уже ниже делал показ кнопки - проблему почти решило, но UI не видел размеры кнопки с первого раза.
    Если кто-то сможет объяснить данные момент - будет ответ на вопрос. Т.к. вопрос именно в этом, а не о том, как переименовать кнопку! Буду очень благодарен за объяснение!
    Ответ написан
    Комментировать