如何在 iOS 中按字母顺序对 MediaQuery 的 ArtistQuery 数组进行排序
Posted
技术标签:
【中文标题】如何在 iOS 中按字母顺序对 MediaQuery 的 ArtistQuery 数组进行排序【英文标题】:How do i sort MediaQuery's artistQuery Array alphabetically in iOS 【发布时间】:2013-01-29 18:11:01 【问题描述】:在我的应用程序中,我加载 Artist 并输入 arrayOfArtists
并显示在 UITableView
。
所以我需要索引到我的UITableView
。这就是为什么我需要像 ios 内置音乐应用程序一样按字母顺序对我的艺术家数组进行排序。
如上图,可以用Title
索引到UITableView
。
所以我需要按字母顺序对我的艺术家数组进行排序。
我该怎么做?
这是我从 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];
我想按字母顺序显示TitleHeader
的UITableView
来索引我的UITableView
。
我怎样才能做到这一点?
谢谢各位。
【问题讨论】:
参考此博客,这将对您有所帮助。 icodeblog.com/2010/12/10/… 【参考方案1】:使用选择器按字母顺序排序:
NSArray *sortedArray=[self.arrayOfArtist sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
【讨论】:
如何在 UITableView 的 TitleHeader 中显示该字母? 什么字母?选择的艺术家字符串? 没有兄弟。我想在 TitleLetter 下像上面的图像排序【参考方案2】:X-开发者-X-
通过实施,我得到了与您想要的几乎相同的东西
-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
和
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
sectionIndexTitlesForTableView 生成屏幕右边缘的索引字符,titleForHeaderInSection 生成节之间的标题。我附上了结果的屏幕截图。我确信可以通过更改表格视图中的一些 GUI 设置来使其完全相同。我看到的区别是我的标题栏有点透明,其中的字符是白色的。
【讨论】:
以上是关于如何在 iOS 中按字母顺序对 MediaQuery 的 ArtistQuery 数组进行排序的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift 中按字母顺序对 JSON 字符串进行排序?