UITableView的值重复

时间:2012-10-25 11:44:08

标签: iphone ios uitableview

我在IB中创建了三个不同的单元格,一个带有UIStepper,一个带有Switch,另一个带有TextField。当我在其中一个步进器上设置值时,另一个步进器会自动获得相同的值。为什么是这样?这是我的cellForRowAtIndexPath方法:

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.section == 2) {
        UITableViewCell *cell;
        if (indexPath.row == 0 || indexPath.row == 16 || indexPath.row == 15) {
            cell = [self.tableView dequeueReusableCellWithIdentifier:@"TextFieldCell"];
            if (cell == nil)
                cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"TextFieldCell"];
        }
        else if (indexPath.row == 17) {
            cell = [self.tableView dequeueReusableCellWithIdentifier:@"BoolCell"];
            DCRoundSwitch *roundSwitch = (DCRoundSwitch *)[cell viewWithTag:1];
            roundSwitch.onText = @"Yes";
            roundSwitch.offText = @"No";
        }
        else {
            cell = [self.tableView dequeueReusableCellWithIdentifier:@"StepperCell"];
        }
        UILabel *myLabel = (UILabel *)[cell viewWithTag:3];
        myLabel.text = [[_tableArray objectAtIndex:2] objectAtIndex:indexPath.row];
        if (cell == nil) {
            NSLog(@"cell er nil");
            return [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"StepperCell"];
        }
        return cell;
    }

只有第二部分有足够的行才能给我带来麻烦。 UILabels显示正确,但步进器以某种方式连接。

1 个答案:

答案 0 :(得分:1)

您正在重用已经存在的StepperCells,这很好,但是当您重用该单元格时,您需要为该单元格中的所有内容设置正确的值。