我在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