2013-08-07 4 views
0

Я хочу скопировать строку в другую секцию, когда кнопка в строке tapped.i сделала это. Но только текст копируется. Я также хочу переместить изображение, которое находится в этой строке.Скопируйте строку в другую секцию в UITableView

-(void)moveRowToAnotherSection:(id)sender{ 

    UIButton *button = (UIButton *)sender; 
    UITableViewCell *cell = (UITableViewCell *)button.superview; 
    NSMutableArray *tempArr = [[NSMutableArray alloc] init]; 
    [[self tableView] beginUpdates]; 

    [tempArr addObject:[NSIndexPath indexPathForRow:self.favouritesArray.count inSection:0]]; 
    [self.favouritesArray insertObject:cell.textLabel.text atIndex:self.favouritesArray.count]; 
    [[self tableView] insertRowsAtIndexPaths:(NSArray *)tempArr withRowAnimation:UITableViewRowAnimationFade]; 

    [[self tableView] endUpdates]; 

} 
+0

Как вы поместить изображение в Tableview камере? Вы создали индивидуальную ячейку? –

+0

cell.imageView.image – ichanduu

+0

Есть ли изображения в каждой ячейке? –

ответ

0

Есть три точки, которые я хочу сделать:

1) Вы хотите переместить изображение, когда конкретная строка сливают, верно? Тогда почему вы не используете метод Tableview делегата - didSelectRowAtIndexPath.

2) Существует метод в UITableView, который используется для перемещения строк. Вот из документации компании Apple:

- (void)moveRowAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath 

Перемещает строку в определенном месте к месту назначения.

Вот фрагмент кода, который перемещает повернутым строку в секции 0 строке 0.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
     NSIndexPath *path = [NSIndexPath indexPathForRow:0 inSection:0]; 
     [tableView beginUpdates]; 
     [tableView moveRowAtIndexPath:path toIndexPath:indexPath]; 
     [tableView moveRowAtIndexPath:indexPath toIndexPath:path]; 
     [tableView endUpdates]; 
    } 

3) Третий пункт является основным. UITableView по умолчанию обеспечивает контроль переупорядочивания и если вы хотите, чтобы изменить порядок строк путем перетаскивания и не коснувшись, вы можете достичь этого следующие действия:

Шаг 1:

Установите TableView в режим редактирования. Обычно это делается с помощью кнопки «Редактировать».

[_yourTableView setEditing:YES animated:YES]; 

Шаг 2:

В - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath назначить

cell.showsReorderControl = YES; 

Шаг 3:

Реализация UITableViewDataSource «ы метод

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath{ 
// here you do all the reordering in your dataSource Array. Because dragging rows change the index of your row but the change should reflect in yopur array as well. 
} 

Это не нужно писать код в разделе beginUpdates и endUpdates. Вам просто нужно выполнить эти три шага.

Read this, чтобы узнать все о Упорядочивание в TableView

+0

извините за то, что я не понимаю в вопросе. У меня есть кнопка в каждой ячейке. Это нужно сделать, когда эта кнопка нажата, а также я не хочу переместить всю строку, я просто хочу сделать его копию в разделе 0. – ichanduu

+0

Я также обновил свой вопрос – ichanduu

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