UiCollectionView - почему мое значение текстовой метки не обновляется? - PullRequest
0 голосов
/ 15 октября 2018

my LBLLikesDetail.text не обновляется

func api_addQuoteToFavourite(){
    let data = ["user_id":UserDefaults.standard.object(forKey: Constant.UserDefault.user_app_id)!,"quote_id":STRQuoteId] as NSDictionary
    MBProgressHUD.showAdded(to: self.view, animated: true)
    Webservices_Alamofier.postWithURL(serverlink: Constant.GlobalDeclare.Mainlink, methodname: Constant.GlobalDeclare.addQuoteToFavourite, param: data, key: "") { (Success, Responce) in
         MBProgressHUD.hideAllHUDs(for: self.view, animated: true)
        if Success == true{

            let cell = self.CollecDetail.dequeueReusableCell(withReuseIdentifier: "cell", for: self.mypath) as! CollectionViewCell


            if let data = Responce.object(forKey: "data") as? NSDictionary {
                if let counts = data.object(forKey: "quote_favourite_count"){
                    cell.LBLLikesDetail.text! =  String("\(counts)")
                    print(cell.LBLLikesDetail.text!)
                    self.CollecDetail.reloadItems(at: [self.mypath])
                }
            }

        } else {

        }
    }
}

1 Ответ

0 голосов
/ 15 октября 2018

Вам нужно получить ячейку, которая уже существует в collectionView вместо из , исключив из очереди другую .Вам нужно использовать

self.CollecDetail.cellForItem(at: self.myPath)

вместо

self.CollecDetail.dequeueReusableCell(withReuseIdentifier: "cell", for: self.mypath)

Кроме того, операции UI должны выполняться в главном потоке ,Итак, оберните каждую операцию пользовательского интерфейса в блок завершения внутри основного потока.

DispatchQueue.main.async {
    //UI Changes
}

Примечание: Соглашения Swift по именованию указывают, что имена переменных должны быть lowerCamelCase .Кроме того, как отмечает @Larme в комментариях, рекомендуется использовать типы Swift и следует избегать принудительного развертывания, если существует вероятность, что для переменной будет nil.

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