我在Interface Builder中設計了一個自定義單元。 UIStepper值增加隨機數
這是一個電子商務購物車應用程序的可重複使用的單元格。問題在於UIStepper.I可以根據用戶添加到購物車的項目數來確定任意數量的這些單元格。所以問題是如果我遞增單元格1,2和3的步進值單元格4的值將從某個隨機數開始,而不是從一個隨機數開始。目前,我從.plist文件讀取值,並創建了一個產品模型並將其保存到模型中並創建一個產品模型數組。數據顯示在數組中。我創建了一個委託,用於從定製單元格獲取值到視圖控制器。步進值更改函數如下所示。
- (IBAction)valueChangedAction:(UIStepper *)sender {
NSLog(@"sender.value ---------- %f",sender.value);
self.stepperCount = sender.value;
self.cartItemQuantityLabel.text=[NSString stringWithFormat:@"%ld",(long)self.stepperCount];
[self.delegate valueDidChangeStepper:self.stepperCount cellRow:self.cellRow];
}
View Controller中函數的實現如下。
-(void)valueDidChangeStepper:(NSInteger)valueofStepper cellRow:(NSInteger)cellRow
{
ProductModel *productModel=[productsArray objectAtIndex:cellRow];
productModel.cartItemQuantity=[NSString stringWithFormat:@"%d",valueofStepper];
NSLog(@"stepper value %d from row %d",valueofStepper,cellRow);
}
該值在產品型號中更新。 例如。如果我在單元格1中選擇數量8,單元格2中選擇數量5,單元格3中選擇數量7,如果我在單元格4中增加一個值,它將從1直接跳到某個隨機值,如10左右。 編輯:的cellForRowAtIndexPath方法如下
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cartItemCellIdentifier [email protected]"CartItemCell";
CartItemCell *cartItemCell =[self.cartTableView dequeueReusableCellWithIdentifier:cartItemCellIdentifier];
if(itemsArray)
{
ProductModel *productFromArray=[productsArray objectAtIndex:indexPath.row];
cartItemCell.cartItemNameLabel.text=productFromArray.cartItemName;
cartItemCell.cartItemQuantityLabel.text=productFromArray.cartItemQuantity;
cartItemCell.cartItemCostLabel.text=productFromArray.cartItemCost;
cartItemCell.cartItemImage.image=[UIImage imageNamed:productFromArray.cartItemImage];
cartItemCell.cellRow=indexPath.row;
cartItemCell.delegate=self;
}
return cartItemCell;
}
我設置cellrow作爲方法indexpath.row itself.So我得到的,其步進爲clicked.But仍然我得到的隨機值。
請勿通過' cellRow'到你的委託方法,傳遞單元格(即'self'),然後在委託方法中使用'indexPathForCell'來確定哪一行受到影響 – Paulw11