我的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 {
}
}
}
答案 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
,则应避免强制展开。