2010-03-17 3 views
0

Я хотел бы создать эффект для ячейки UITableView. Эффект: дублировать ячейку и перемещать дублированную ячейку (оригинал остается на своем месте). Моя проблема заключается в дублировать клетки ...Duplicate UITableViewCell - iPhone

Я пробовал:

Код:

UITableViewCell *animatedCell = [[UITableViewCell alloc] init]; 
animatedCell = [[self cellForRowAtIndexPath:indexPath] copy]; 

но UIView не кажется, реализовать копию ... Как я могу это сделать ?

Благодаря

ответ

3

Если вам нужно только дублированный образ вашей ячейки для анимации (не реальный вид со всеми subviews) вы можете просто скопировать изображение ячейки:

UITableViewCell * aCell = [tableView cellForRowAtIndexPath:indexPath]; 
UIGraphicsBeginImageContext(aCell.frame.size); 
[aCell.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *aCellImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
UIImageView * imageView = [[UIImageView alloc] initWithImage:aCellImage]; 

Или, если вам нужен реальный вид, создайте его. И учтите, что UITableView не создает ячейки, вы делаете это в tableView: cellForRowAtIndexPath: метод tableView dataSource. Поэтому используйте тот же код для создания другой ячейки с указанным indexPath ... Но не создавайте объект UITableViewCell, вместо этого создавайте UIView и добавляйте его в includeView ячейки. И когда вам нужна дублирующаяся ячейка, создайте еще один экземпляр того же UIView и используйте его в своей анимации.

+0

PERFECT !!! спасибо огромное ... – ncohen

+0

Спасибо, это так просто. –

0

Вы, как правило, не требуется вручную выделять клетки (за исключением вашего Tableview: Tableview cellForRowAtIndexPath: метод делегата). Вместо этого, сделать любые изменения, вам нужно в модели данных, чтобы отразить новую ячейку, а затем скажите TableView, чтобы вставить новую строку:

[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade]; 
+0

Я не хочу изменять свой вид таблицы ... Я просто хочу скопировать одну ячейку из своего таблицы и использовать ее для создания анимации! – ncohen

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