uiCollectionView-为什么我的textlabel值不更新?

时间:2018-10-15 09:16:43

标签: ios swift uicollectionview

我的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 :(得分:3)

您需要获取已经存在的单元格,而不是使另一个单元出队的collectionView 。您需要使用

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

而不是

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

此外, UI 操作应在主线程上完成。因此,将每个UI操作都包装在主线程内的完成块中。

DispatchQueue.main.async {
    //UI Changes
}

注意::Swift命名约定规定变量名称应为 lowerCamelCase 。另外,正如@Larme在评论中指出的那样,建议使用Swift类型,如果变量可能为nil,则应避免强制展开。