2012-08-22 77 views
0

我正在使用步進器和標籤的自定義表格視圖單元格。 但是,當我檢查步進器的價值時,每增加2次只增加一次。 問題是什麼?步進值每增加一次點擊一次

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *cellIdentifier = @"cellData"; 
    ItemCell *cell = [self.myTableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
    if (cell == nil) 
    { 
     cell = [[ItemCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
    } 
    cell.stepper.tag = indexPath.row; 
    cell.countLabel.text = [NSString stringWithFormat:@"%g",cell.stepper.value]; 
    NSLog(@"value = %g",cell.stepper.value); 
    cell.itemLabel.text = [self.groceryItems objectAtIndex:indexPath.row]; 
    return cell; 
} 

- (IBAction)valueChanged:(id)sender 
{ 
    UIStepper *step = sender; 
    NSIndexPath *index = [NSIndexPath indexPathForRow:step.tag inSection:0]; 
    NSArray *rowsToReload = [NSArray arrayWithObject:index]; 
    [self.myTableView reloadRowsAtIndexPaths:rowsToReload withRowAnimation:NO]; 
} 
+0

如果我使用[self.myTableView reloadData];那麼它工作正常。 – vivek241

+0

您可能會考慮使用'%d'來代替'%g'。 '%d = 32bit-integer' '%g = 64bit-double' – nooitaf

+0

stepper.value是一個double,所以我用%g – vivek241

回答

0

嘗試將此添加到您的valueChanged方法:

[self.myTableView beginUpdates]; 
[self.myTableView reloadRowsAtIndexPaths:rowsToReload withRowAnimation:NO]; 
[self.myTableView endUpdates]; 
+0

我試過了,但它仍然沒有幫助。 – vivek241