Нет, вам не нужно обновлять метод делегата tableView:cellForRowRowAtIndexPath:
. Все, что вам нужно сделать, это:
[self.tableView cellForRowAtIndexPath:indexPath].backgroundColor = desiredUIColor;
Обратите внимание, что вызов tableView:cellForRowAtIndexPath:
из типа id<UITableViewDataSource>
отличается от вызова cellForRowAtIndexPath:
из типа UITableView
. Первый вызывает метод делегата (это никогда не должно вызываться напрямую), а второй возвращает текущую ячейку для пути индекса без пересчета ячейки .
Если в вашем табличном представлении есть только один раздел, вычислить верхние ячейки n просто. Если ваша «переменная, которая будет отслеживать, сколько ячеек должно быть окрашено», равна (NSUInteger)numberOfHighlightedCells
, это простой код цикла, который вы можете запустить:
NSUInteger i;
for (i = 0; i < numberOfHighlightedCells; i++) {
[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]].backgroundColor = desiredUIColor;
}
Однако, если в вашей таблице более одного раздела, может потребоваться очень сложный расчет путей индекса.