Мое приложение выглядит как на картинке ниже
У меня есть 3 кнопки в моем сегментированном элементе управления. Предположим, что нажатие кнопки «Отдел» отобразит 3 отдела, а нажатие кнопки «Имя» покажет 6 имен.
Я выполняю следующие шаги, чтобы сделать это ..
Создать UISegmentedControl по этому коду
segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Department", @"Name", @"ID",nil]]; //Initialize Segmented Control
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; //Define bar type (optional)
segmentedControl.selectedSegmentIndex = 0; //Define default clicked button
[segmentedControl addTarget:self action:@selector(segmentClicked) forControlEvents:UIControlEventValueChanged]; //Set target and define which method should called when tapping buttons
self.navigationItem.titleView = segmentedControl; //To add UISegmented Control in the title of the navigation bar
Определить метод (segmentClicked
) для UISegmented Control
segment = segmentedControl.selectedSegmentIndex;
if (segment==0) {
//Do something for Department tab
[self.tableView reloadData];
}
else if (segment==1) {
//Do something for Name tab
[self.tableView reloadData];
}
else {
//Do something for ID tab
[self.tableView reloadData];
}
Создайте ячейки со ссылкой на значение сегмента в методе tableView: cellForRowAtIndexPath:
. (Так что мы можем получить различные ячейки для каждой кнопки UISegmentedControl)
if (segment == 0) {
cell.textLabel.text = [listOfDepartments objectAtIndex:indexPath.section]; //listOfDepartments is the NSMutableArray that contains list of Departments names
}
else if (segment == 1) {
cell.textLabel.text = [listOfNames objectAtIndex:indexPath.section]; //listOfNames is the NSMutableArray that contains list of person names
}
else {
cell.textLabel.text = [listOfIDs objectAtIndex:indexPath.section]; //listOfIDs is the NSMutableArray that contains list of person ID's
}
return cell;
Итак, наконец я получил вид, показанный на изображении выше.
Когда я нажимаю на кнопки UISegmentedControl, табличное представление перезагружает свои ячейки и показывает соответствующие значения. По умолчанию была выбрана кнопка «Отдел». Если я коснусь кнопки «Имя» (то есть в таблице будет отображаться 6 ячеек вместо 3), таблица изменится немедленно, без анимации. Он просто скрывает 3 ячейки названий отделов и показывает 6 ячеек, которые отображают имена людей без анимации. Я не мог найти способ сделать изменения в ячейке с плавной анимацией.
Что я должен реализовать, чтобы добиться плавной анимации?
Заранее спасибо