有没有办法反转tableView顺序?iOS反向tableView排序顺序
例如,我有一个tableView,按firstUpdated排序到LastUpdated。它会自动使其由plist数据组成。但是如果我想把最新的数据放在最上面而老的放在底部呢?
有没有办法反转tableView顺序?iOS反向tableView排序顺序
例如,我有一个tableView,按firstUpdated排序到LastUpdated。它会自动使其由plist数据组成。但是如果我想把最新的数据放在最上面而老的放在底部呢?
self.yourCurrentArrayOfObjects = ...;
NSMutableArray *reversedArray = [NSMutableArray arrayWithCapacity:yourCurrentArrayOfObjects.count];
for (id object in yourCurrentArrayOfObjects.reverseObjectEnumerator)
{
[reversedArray addObject:object];
}
self.yourCurrentArrayOfObjects = [reversedArray copy];
[self.tableView reloadData];
你应该使用数组排序填充表格视图。
其他两个答案的工作,但我不得不这样做的另一种方式,如果你需要通过对象的任何属性排序:
您可以创建一个方法-sortMyArray
,它会看起来像:
-(void)sortMyArray
{
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"SomeObjectSortProperty" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
[MyArray sortUsingDescriptors:sortDescriptors];
[sortDescriptor release];
}
当然,每次调用此方法后,都需要调用您的表视图重载数据方法。
希望这会有所帮助。
另一种替代方法(仅保留原始数组的副本)是使用原始数组,并在UITableViewDataSource
函数中以向后顺序抓取对象。
例子:
id currentObject = [originalArray objectAtIndex:(originalArray.count - indexPath.row - 1)];
这实际上可能是一个更好的解决方案,因为你并不需要保持相同数据的2个副本只是为了相反的顺序。
它会颠倒阵列,而他想排序他的数组而不是反向 – Abhishek
“有没有办法扭转tableView命令?我认为他确实希望它逆转? – hypercrypt
我只是说他必须排序他的数组没有反向..你怎么能假定数组排序其糟糕的做法,我只是想排序数组按顺序不倒退...得到我的观点 – Abhishek