2012-05-16 2 views
1

У меня есть табличный вид с пользовательскими ячейками. Ячейки имеют представление изображения, метку и представление прогресса. То, что я хочу достичь, - обновить представление прогресса в конкретной ячейке в соответствии с событием, которое срабатывает. Моя идея - найти ярлык ячейки по имени, который находится в этом случае, а затем обновить представление прогресса. Это может быть не эффективным способом, но я не мог думать о другом. Другие идеи также приветствуются. Заранее спасибо.iOS Table View Finding A Cell

ответ

2

Вы можете использовать NSDictionary с именем в качестве ключа и NSIndexPath в качестве объекта. Затем можно искать индексный путь для данной ячейки, используя имя в словаре.

+0

Словарь хорошо работал :) – user1061894

1

UITableView имеет метод cellForRowAtIndexPath: `, который должен дать вам ячейку для определенной строки.

т.е. что-то вроде

// Get visible cell for data item 
NSInteger row = [myArrayOfThings indexOfObject:thing]; 
NSIndexPath *inedexPath = [NSIndexPath alloc] initWithRow:row section:0]; 
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indeexPath]; 

// Update cell here ... 
... 

Отказ от ответственности: Код набран из памяти - вы, возможно, придется смотреть на документацию для некоторых имен методов :)

0

более лучший способ это с тегом,

вы можете дать каждой ячейке уникальный тег и доступ к этой ячейке этим методом

//method of UIView(UIViewHierarchy) 
- (UIView *)viewWithTag:(NSInteger)tag; 
// can be used like this 
UITableViewCell *cell = (UITableViewCell*)[tableView viewwithtag:tag]; 
+1

Не будет ли это работать, только если представление таблицы не перерабатывает ячейки? – deanWombourne

+0

хорошо, он может работать, если идентификатор уникален для каждой ячейки. –

+0

Если у вас есть 100 строк, но отображать только 7 переработанных ячеек, как может быть 100 уникальных идентификаторов - ячейки будут переработаны! Планируете ли вы перетаскивать ячейку каждый раз, когда она отображается? – deanWombourne

Смежные вопросы