У меня есть UILabel в пользовательском UITableViewCell, размер которого изменяется при повороте устройства. Текст в этой метке необходимо пересчитать после поворота, потому что я сокращаю его до размера и добавляю текст в конце.
Например, Я могу получить доступ к видимым UITableViewCells и обновить описания.
Проблема, похоже, в том, что есть UITableViewCells, которые кэшированы, но я не могу добраться до них. Когда я прокручиваю UITableView после поворота, одна или две ячейки, которые находятся ниже видимой области после поворота, не имеют правильного текста в метке. Таким образом, они не были отрисованы через (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath
- но они не были возвращены [tableView visibleCells] (или через цикл через все представления, возвращенные через [tableView subViews]).
Я пытался получить доступ к «лишним» ячейкам с помощью этого метода:
for (int index=max + 1; index < max + 3 && index < [cellTypes count]; index++) {
NSIndexPath *updatedPath = [NSIndexPath indexPathForRow:index inSection:0];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:updatedPath];
if (cell == nil) { continue; }
[self updateCellForRotate:cell forRow:index];
}
(где max - самая большая строка, возвращаемая из visibleCells), но ячейка всегда равна нулю.
Есть ли способ очистить кеш UITableViewCells, чтобы они не использовались повторно? Или получить к ним доступ, чтобы я мог их обновить?
Спасибо!