我在 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 显示正确,但步进器以某种方式连接。