ios - 如何根据声明顺序对 UITableView header 进行排序

标签 ios objective-c uitableview

所以我在这里有一个小问题,我想我在这篇文章的标题中表达了我的观点。我要排序UITableView根据我在代码中声明它们的顺序 header 。我已经尝试上网,但找不到任何解决方案。

我认为这里的人可以提供帮助。提前致谢!

编辑:这是我的表格 View 内容的代码

 NSDictionary *temp = [[NSDictionary alloc]initWithObjectsAndKeys:accSettingsOpts, @"Account",notifSettingsOpts,@"Notifications",aboutOpts,@"About",logoutOpt,@"Sign Out",nil];

我想显示按排序的表格 View
-Account
-Notifications
-About
-Sign Out

但它显示为
 -About
 -Account
 -Notifications
 -Sign Out

编辑:这就是解决问题的方式。

根据我在下面接受的答案,我将其修改为
@interface myClass ()
NSArray *headerArr;
@end

viewDidload我添加了
headerArr = [[NSArray alloc]initWithObjects:@"Account",@"Notifications",@"About",@"Sign Out", nil];

最后...
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    return [headerArr objectAtIndex:section];
}

谢谢你们的帮助。没想到就这么简单。

最佳答案

字典是无序的集合。如果您将项目存储在字典中,则定义它们的顺序不会保存在任何地方。

TableView 是对象的固有有序列表。因此,字典不适合作为存储 TableView 项目的方式。然而,数组是表格 View 的自然数据源。

使用数组而不是字典。就这么简单。您可以使用字典数组或其他一些数据对象的数组,然后编写 cellForRowAtIndexPath 方法从模型(数组元素)中提取数据并将值安装到单元格中。

关于ios - 如何根据声明顺序对 UITableView header 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19993077/

相关文章:

ios - 如何通过函数格式化TextField输入字符串?

ios - 如何创建我自己的委托(delegate)(Objective-C 中的用户定义委托(delegate))

ios - Swift:当 UITableView 滚动太快时应用程序崩溃

ios - 解析 iOS : ACL for more than one user

iOS:使 UIImage 在 Tableview 中保持在顶部

ios - 从数组中的对象获取属性

objective-c - Cocoa-Touch - 将动画链接在一起

iOS - 将单元格添加到带有核心数据和 NSFetchedResultsController 的空 UITableView 部分

ios - 我如何使用解码器在 swift 4 中解析 tableview 中的 json 数组

objective-c - NSDateFormatter 获取 stringFromDate 错误