4

tableView の順序を逆にする方法はありますか?

たとえば、firstUpdated から LastUpdated に並べ替える tableView があります。plistデータによって自動的に構成されます。しかし、最新のデータを上に、古いデータを下に配置したい場合はどうすればよいでしょうか?

4

5 に答える 5

6

テーブルビューにデータを入力するために使用する配列を並べ替える必要があります。

他の2つの答えは機能しますが、オブジェクトのプロパティで並べ替える必要がある場合は、別の方法でこれを行うことができます。

メソッドを作成できます-sortMyArray

そしてそれは次のようになります:

-(void)sortMyArray
{
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"SomeObjectSortProperty" ascending:YES];

    NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];

    [MyArray sortUsingDescriptors:sortDescriptors];
    [sortDescriptor release];
}

もちろん、このメソッドを呼び出すたびに、テーブルビューのreloaddataメソッドを呼び出す必要があります。

お役に立てれば。

于 2012-06-29T15:05:29.197 に答える
6

他の解決策は問題なく機能しますが、これは少し短いです。

NSArray *reversedArray = [[originalArray reverseObjectEnumerator] allObjects];

于 2012-06-29T15:00:27.100 に答える
1

UITableViewDataSourceもう 1 つの方法 (元の配列のコピーのみを維持するため) は、元の配列を使用して、関数内で逆順にオブジェクトを取得することです。

例:

id currentObject = [originalArray objectAtIndex:(originalArray.count - indexPath.row - 1)];

単純に順序を逆にするために同じデータの 2 つのコピーを保持する必要がないため、これは実際にはおそらくより良い解決策です。

于 2012-06-29T15:27:59.823 に答える
0
self.yourCurrentArrayOfObjects = ...;
NSMutableArray *reversedArray = [NSMutableArray arrayWithCapacity:yourCurrentArrayOfObjects.count];
for (id object in yourCurrentArrayOfObjects.reverseObjectEnumerator)
{
    [reversedArray addObject:object];
}
self.yourCurrentArrayOfObjects = [reversedArray copy];
[self.tableView reloadData];
于 2012-06-29T14:58:13.777 に答える
0

配列を使用してテーブルビューにデータを入力していました...

テーブルの順序をソートするのではなく、その配列をソートします。

于 2012-06-29T15:03:18.617 に答える