0

在我的应用程序中,我加载 Artist 并输入arrayOfArtists并显示UITableView

所以我需要索引我UITableView的 . 这就是为什么我需要像 iOS 内置音乐应用程序一样按字母顺序对我的艺术家数组进行排序。

在此处输入图像描述

像上面的照片,它可以索引UITableViewTitle

所以我需要按字母顺序对我的艺术家数组进行排序。

我怎样才能做到这一点?

这是我从 iPodLibrary 加载 Artist 的一些代码。

ViewDidLoad

    MPMediaQuery *query = [MPMediaQuery artistsQuery];
    query.groupingType = MPMediaGroupingAlbumArtist;
    self.arrayOfArtist = [query collections];

CellForRowAtIndexPath

cell.textLabel.text = [NSString stringWithFormat:@"%@",[[[self.arrayOfArtist objectAtIndex:indexPath.row] representativeItem] valueForProperty:MPMediaItemPropertyArtist]];

sectionForSectionIndexTitle

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
        return [self.arrayOfArtist count];
}

我想按字母顺序显示我TitleHeaderUITableView索引UITableView。我怎样才能做到这一点?谢谢大家。

4

2 回答 2

3

使用选择器按字母顺序排序:

NSArray *sortedArray=[self.arrayOfArtist sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
于 2013-01-29T18:13:15.313 回答
1

X-开发者-X -

通过实施,我得到了与您想要的几乎相同的东西

-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

sectionIndexTitlesForTableView 生成屏幕右边缘的索引字符,titleForHeaderInSection 生成节之间的标题。我附上了结果的屏幕截图。我确信可以通过更改表格视图中的一些 GUI 设置来使其完全相同。我看到的区别是我的标题栏有点透明,其中的字符是白色的。

一个屏幕截图,揭示了我对音乐的不同寻常的品味:

于 2013-03-29T08:02:29.153 回答