排序 UITableView
Posted
技术标签:
【中文标题】排序 UITableView【英文标题】:Sorting UITableView 【发布时间】:2013-08-16 03:28:27 【问题描述】:我想对从MPMediaQuery
生成的UITableView
进行基本排序。
我想要的只是有一个基本的歌曲列表,将歌曲分类为 A、B、C、D 等部分。应该不难,但我尝试遵循的每个教程最终都没有给出我完全没有这些结果。
任何帮助都会很棒。这是我的基本代码。我意识到这甚至还没有达到我想要完成的目标,但我认为经验丰富的开发人员从这一点开始帮助我会更容易,而不是我陷入困境。
我如何生成数据:
MPMediaQuery *musicLibraryQuery = [[MPMediaQuery alloc] init];
NSArray *musicLibraryArray = [musicLibraryQuery items];
songLibrary = [NSMutableArray arrayWithArray:musicLibraryArray];
这些是我的 UITableView 方法:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return [songLibrary count];
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"SongCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(!cell)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
MPMediaItem *song = [[songLibrary objectAtIndex:[indexPath row]] representativeItem];
cell.textLabel.text = [song valueForProperty:MPMediaItemPropertyTitle];
return cell;
【问题讨论】:
请试试这个 -> ***.com/questions/5820979/… 【参考方案1】:例如你需要对数组进行排序
songLibrary = [musicLibraryArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
【讨论】:
【参考方案2】:如果您的 Array 中有 Dictionary 作为对象,并且您想为特定键排序数组,请执行以下操作:
静态 NSString* const keyToSortBy = @"keyToSortBy";
NSArray * sortedArray = [array sortedArrayUsingComparator:^(id obj1, id obj2)
NSString *s1 = [obj1 objectForKey:keyToSortBy];
NSString *s2 = [obj2 objectForKey:keyToSortBy];
return [s1 caseInsensitiveCompare:s2];
];
【讨论】:
【参考方案3】:用这个,可能会有用
songLibrary=[songLibrary sortedArrayUsingSelector:@selector(compare:)];
【讨论】:
以上是关于排序 UITableView的主要内容,如果未能解决你的问题,请参考以下文章
如何禁用 tableview 特定行但特定行包含 uibutton。按钮必须访问
Objective-c——UI基础开发第六天(UITableView)
插入排序(直接插入排序希尔排序);交换排序(冒泡排序快速排序);选择排序(简单选择排序堆排序);归并排序和基数排序;基于关键词比较的排序算法下界分析
九种经典排序算法详解(冒泡排序,插入排序,选择排序,快速排序,归并排序,堆排序,计数排序,桶排序,基数排序)