Как насчет использования двух массивов?Одним из них является полный набор данных, а другим - отфильтрованный набор данных.
Таким образом, вы можете иметь два разных табличных представления, и в зависимости от того, что представляет собой выбранный сегмент, вы можете сделать анимацию затухания между двумяtableviews.Например, допустим, вы выбрали сегмент:
-(void)switchTableViews
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDidStopSelector:@selector(hideTableView)];
switch (segmentedControl.selectedSegmentIndex)
{
case 0:
{
tableView1.alpha = 1.0;
tableView2.alpha = 0.0;
}
break;
case 1:
{
tableView1.alpha = 0.0;
tableView2.alpha = 1.0;
}
break;
default:
break;
}
[UIView commitAnimations];
}
- (void)hideTableView
{
switch (segmentedControl.selectedSegmentIndex)
{
case 0:
{
tableView1.hidden = NO;
tableView2.hidden = YES;
}
break;
case 1:
{
tableView1.hidden = YES;
tableView2.hidden = NO;
}
break;
default:
break;
}
}
Конечно, это будет означать настройку различных кодовых наборов для методов источника данных, но это не так сложно, как вы думаете.Просто используйте простой if-else, чтобы проверить, какое представление таблицы устанавливается.