iphone:UItableviewcell在滚动时重新加载

时间:2012-02-20 09:16:39

标签: iphone objective-c ios uitableview

当我滚动我的tableview时,每个单元格中的整个数据都会重新加载。它在tablecell的视图中没有显示任何问题。 但是它会导致从每个单元格中检索到的数量计算总数时出现问题。当我们滚动tableview时,总值会重新添加。

这是我的代码:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {

       cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];   //subtitle view supprot

    }

    //Get the object from the array.
    order *orderObj = [appDelegate.orderArray objectAtIndex:indexPath.row];

    //Set the ordername.
    cell.textLabel.text = orderObj.itemName;
    cell.detailTextLabel.text=[NSString stringWithFormat:@"Quantity : %@  Price : %@ Spiciness : %@", orderObj.quantity,orderObj.price,orderObj.spiciness];

       quan=[orderObj.quantity intValue];
       pri=[orderObj.price floatValue];

   [self calculateValues]; 

    return cell;

}

计算值:

-(void)calculateValues{

    itemPrice=itemPrice+pri;

    float subtot=quan * itemPrice;

    _subTotal.text=[NSString stringWithFormat:@"%.2f", subtot];


}

1 个答案:

答案 0 :(得分:1)

只需在.h文件中输入一个变量,然后输入mLastIndex并将其初始值设置为-1

mLastIndex = -1;

然后将您的cellForRowAtIndexPath更改为

if (indexPath.row > mLastIndex) {
            [self calculateValues]; 
            mLastIndex = indexPath.row;
        }