在加载页面之后,调用步进按钮动作时调用的委托人cell for row at index path
会被调用,并且数量值会自动更新,而无需在swift 3中进行手动更新。有人可以帮助我如何解决此问题?
这是我在索引路径委托方法中单元格中的行代码
cell.stepperView.minimumValue = 1
cell.stepperView.autorepeat = false
cell.stepperView.value = Double(arr.quantity!)
cell.stepperView.label.text = "\((arr.quantity)!)"
cell.stepperView.label.font = UIFont.boldSystemFont(ofSize: 17.0)
print(arr.quantity)
cell.stepperView.tag = indexPath.row
cell.stepperView.addTarget(self, action: #selector(stepperAction(sender:)), for:.valueChanged)
cell.removeButton.tag = indexPath.row
cell.removeButton.addTarget(self, action: #selector(deleteAction(sender:)), for: .touchUpInside)
这是我的步进动作调用方法
@objc func stepperAction(sender: GMStepper) {
print(sender.tag)
self.Index = sender.tag
print(self.Index)
let value = String(describing:Float(sender.value))
print(value)
let obj = cartItemsModel[sender.tag]
self.itemId = obj.itemID
print(obj.itemID)
cartItemsModel[sender.tag].quantity = Int(sender.value)
self.price = obj.price
let quant = value.replacingOccurrences(of: ".0", with: "")
self.quantity = Int(quant)
if self.Index! != nil {
if loginCheck == 1 {
let customerItemsAddingAPI = "\(domainName)/V1/carts/mine/item/\(itemId!)"
customerItemsIncrementingandDecrementingtocartDownloadJsonWithURL(customerAPI: customerItemsAddingAPI)
}else {
let guestItemsAddingApi = "\(domainName)/en/V1/guest-carts/\(self.guestQuoteId!)/item/\(itemId!)/"
guestItemsIncrementingandDecrementingtocartDownloadJsonWithURL(itemsApi: guestItemsAddingApi)
}
}
}
根据响应状态代码调用上述api之后,我正在手动更新价格和数量,并且使用的代码是
let responseString = String(data: data, encoding: .utf8)
print("responseString = \(responseString!)")
let status = (response as! HTTPURLResponse).statusCode
self.statusCode = status
DispatchQueue.main.async {
if self.statusCode == 200 {
print(self.stepperIndexPath?.row)
print(self.stepperIndexPath?.section)
self.cartTotalCheck = true
let cell = self.cartCollectionView.cellForItem(at: IndexPath(row: self.Index!, section: 1)) as? cartItemCollectionViewCell
cell?.stepperView.label.text = "\((self.quantity)!)"
cell?.productPriceLabel.text = "$ \(self.doubleToStringDecimalPlacesWithDouble(number: (Double(self.quantity!) * ((self.price)!)), numberOfDecimalPlaces: 2))"
self.customerTotalpriceDownloadJsonwithURL(customerTotalAPI: self.customerTotalPriceURL)
}
else{
RappleActivityIndicatorView.stopAnimation()
}
}