2014-01-11 3 views
0

До сих пор я настроил свой UITableViewCell со строкой порядка значков.Как изменить порядок строк в UITableViewCell

enter image description here

Я хочу, чтобы моя клетка может быть заказана при длительном нажатии на иконку переупорядочивания, а затем переместить его. Изображение ниже - это то, что я ожидал.

enter image description here

Я прочитал много документов они предоставили только длительное нажатие на ячейку и переместить его, но я не хочу, потому что длительное нажатие на ячейку у меня есть еще один жест переименовав его; а также я не хочу использовать редактирование/выполнение UITableView по умолчанию из ОС; поэтому я решил поместить значок переупорядочения, но я не могу этого сделать, потому что я новичок в объективном c.

Может ли кто-нибудь помочь, предоставив здесь образец кода?

Благодарим за чтение.

ответ

1

Override два методы UITableViewDataSource

Для изменения порядка работы сначала нужно привести таблицу в режиме редактирования. Что вы можете сделать либо из viewDidLoad, либо из метода IBAction.

-(void) viewDidLoad{ 
    [super viewDidLoad]; 
    self.myTableView.editing = YES; 
} 

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{ 

    return YES; 
} 


- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath{ 
    //Manipulate your data array. 
} 

По умолчанию стиль редактирования UITableViewCellEditingStyleDelete. Поэтому, если вы не переопределите метод ниже, он отобразит и значок переименования, а значок удаления.

-(UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    return UITableViewCellEditingStyleNone; 
} 

Так, у вас есть длинный жест вашей клетки вызывает проблемы с длинным жестом повторного упорядочения ячейки. Вы можете добавить UIView в ячейку. Добавьте все свои элементы в этот UIView. Теперь присоедините жест UILongPress к этому UIView (а не к ячейке).

+0

Фактически, когда я нажимаю на ячейку, он перейдет к другому виду, чтобы отобразить подробную информацию. поэтому я не могу поставить self.myTableView.editing = YES; если я положил его -> моя ячейка не работает. Что мне нужно - это просто нажать на мой значок переупорядочения, чтобы изменить порядок строк, потому что мой значок настроен из моего UITableViewCell. Вы можете мне помочь? Спасибо –

+0

Это показывает широкое пространство на левой стороне. можно ли удалить это пространство? –

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