Is there a way to get access to a UITableViewCell that is not currently on screen? I’m trying to update rows that are currently not in view. I am using this collapsable/expandable rows for a UITableView in one of Apple’s example codes. I use this:
for (NSInteger row = 0; row < totalRows; row++) {
NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:section];
OrderTableViewCell *cell = (OrderTableViewCell *)[_tableView cellForRowAtIndexPath:path];
cell.CheckmarkButton.selected = YES;
cell.Symbol.isSelected = YES;
}
My totalRows is correct in that I get the number of rows from the TableView. So I thought I could use that, loop through all the rows, and set some values. However, if I check the state of the rows, the ones that are currently on screen have values and I can change them, but the ones off screen are null and cannot be set. Is there a way I can get around this? Thanks.
Depending on what you want to update you could just update the ith entry in a backing collection.
For example you could have a collection that stores bools corresponding to CheckmarkButton selected. In your loop you could set
myArray[row] = YES. IncellForRowAtIndexPathyou can docell.CheckmarkButton.selected = myArray[indexPath.row].If you want to maintain multiple items for each cell then
myArrayin the above example could contain instances of an object that holds values relevant to the ith cell.