Обновить UITableView titleForFooterInSection для значения UISliderChanged? - PullRequest
2 голосов
/ 19 января 2010

У меня есть UITableViewCell, в котором есть UISlider. У меня есть текст нижнего колонтитула для табличного представления, который я хотел бы обновить значением UISlider.

Однако, вызывая [self.tableView reloadData]; не работает для UISlider, так как это слишком много вызовов. Я могу правильно обновить ячейку (она также показывает значение), но я не могу обновить текст нижнего колонтитула. Я пробовал:

[self tableView:self.tableView titleForFooterInSection:0];

Но это не работает ..

1 Ответ

4 голосов
/ 19 января 2010

Подключите ваш ползунок к методу действия в вашем контроллере:

[theSlider addTarget:self 
              action:@selector(adjustSliderValue:) 
    forControlEvents:UIControlEventValueChanged];

Реализация метода действия ползунка:

- (void) adjustSliderValue: (UISlider *) slider
{
    // Change controller's state here. 
    // The next line will trigger -tableView:titleForFooterInSection:
    [self.tableView reloadSections:[NSIndexSet indexSetWithIndex: mySectionIndex] 
                  withRowAnimation:UITableViewRowAnimationNone];
}

Это более эффективно, чем перезагрузка всей таблицы. К сожалению, напрямую установить текст нижнего колонтитула невозможно.

...