Мне никогда не приходилось использовать UIStepper
, поэтому я решил попробовать.iOS: UIStepper в ячейках UITableView
И я попробовал его в ячейках таблицы. Ниже мой код:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
UIStepper *stepper = [[UIStepper alloc] initWithFrame:(CGRect){{40, 40}, 20, 20}];
[stepper addTarget:self action:@selector(stepperTapped:) forControlEvents:UIControlEventValueChanged];
stepper.tag = indexPath.row;
stepper.stepValue = 1;
stepper.continuous = YES;
stepper.minimumValue = 0;
stepper.maximumValue = 10;
[cell.contentView addSubview:stepper];
return cell;
}
Метод Действие:
- (void)stepperTapped:(UIStepper*)stepper
{
NSLog(@"sender tag: %li", (long)stepper.tag);
UITableViewCell *currentCell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:stepper.tag inSection:0]];
NSNumber *stepperValue = [NSNumber numberWithDouble:stepper.value];
currentCell.textLabel.text = [NSString stringWithFormat:@"%f", stepper.value];
[self.tableView reloadData];
}
Am просто проверяет его с 4-х ячеек и 1 секции.
Выполняется, но шагомер только увеличивается один раз (0 -> 1 или 1 -> 0), он не будет подниматься до 10, что является максимальным числом, которое я установил.
Я проверил тот же код, что и в ячейке таблицы, и он отлично работает. От 0 до 10 и от 10 до 0, каждый шаг.
Этот небольшой эксперимент стоил мне 2 часа, пытаясь найти решение.
Может ли проблема возникнуть здесь?
Я тоже об этом думал, но я хотел бы использовать прототипы. Будет ли это возможно? Благодарю. – Unheilig
Хорошо, если вы это сделаете, он будет создавать каждый раз и установить значение как 1 правильно? – Surfer
Пожалуйста, обратитесь к следующей ссылке http://stackoverflow.com/questions/11067334/uistepper-not-updating-the-corresponding-label – Surfer