在使用单元格填充tableview时出现问题。
有我的阵列,我的细胞应该从哪个阵列开始
items = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"http://feeds.test.com/home", @"Home",
@"http://feeds.test.com/publications", @"Refcardz and Guides",
@"http://feeds.test.com/agile", @"Agile Zone",
@"http://feeds.test.com/big-data", @"Big Data Zone",
@"http://feeds.test.com/cloud", @"Cloud Zone",
@"http://feeds.test.com/database", @"Database Zone",
@"http://feeds.test.com/devops", @"DevOps Zone",
@"http://feeds.test.com/integration", @"Integration Zone",
@"http://feeds.test.com/iot", @"IoT Zone",
@"http://feeds.test.com/java", @"Java Zone",
@"http://feeds.test.com/mobile", @"Mobile Zone",
@"http://feeds.test.com/performance", @"Performance Zone",
@"http://feeds.test.com/webdev", @"Web Dev Zone",
nil];
所以创建的单元格的顺序应该像这样:
主页 - Refcardz和指南 - 敏捷区 - 大数据区 - 云区 - 数据库区 - DevOps区 - 集成区 - 物联网区 - Java区 - 移动区 - 性能区 - Web开发区
但是以这种方式订购了细胞 enter image description here
这是我的cellForRowAtIndexPath,如果它有帮助:
- (UITableViewCell *)tableView:(UITableView *)sourceTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *myIdentifier = @"Cell";
UITableViewCell *cell = [sourceTableView dequeueReusableCellWithIdentifier:myIdentifier forIndexPath:indexPath];
NSString *curName = [webSitesNames objectAtIndex:indexPath.row];
cell.textLabel.text = [curName copy];
if([self.cellSelected containsObject:indexPath]){
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else{
cell.accessoryType = UITableViewCellAccessoryNone;
}
return cell;
}
我真的不知道为什么会有这种奇怪的行为。 如何改进我的代码以按照我的数组顺序查看所有单元格?
答案 0 :(得分:1)
您正在使用字典,字典不是有序集合。你必须使用数组。将项目转换为数组。
另一种选择是在现有字典中添加另一级字典,并使用“0”,“1”,“2”......等键
E.g。 items = [NSMutableDictionary dictionaryWithObjectsAndKeys:@ {@“url”:@“http://feeds.test.com/home”,@“title”:@“Home”},@“0”, @“url”:@“http://feeds.test.com/publications”,@“title”:@“Refcardz and Guides”},@“1”.....
基本上你使用索引作为字典的键,值是另一个带有url和标题键的字典。