如何使用自定义单元格从数组创建NSDictionnary

对象

我有一个UITableView带有cellView数组的自定义填充(参见functs),没有节。我的目标是创建一个带有列表索引(这是问题)的搜索栏(可以)。阅读了大量文档后,我计划使用以下三种方法:“ numberOfSectionsInTableView”,“ sectionIndexTitlesForTableView”和“ sectionForSectionIndexTitle

如何NSDictionnary使用以下结构创建functs数组?

//in viewDidLoad
// Initialize the functs array
Funct *funct1 = [Funct new];
funct1.name = @"AAA";
funct1.detail = @"detail1...";
funct1.image = @"a.jpg";

Funct *funct2 = [Funct new];
funct2.name = @"BBB";
funct2.prepTime = @"detail2...";
funct2.image = @"b.jpg";

functs = [NSArray arrayWithObjects:funct, funct2, nil]; //etc.

//For Index list: one section per letter
NSString *letters = @"a b c d e f g h i j k l m n o p q r s t u v w x y z";
self.indexTitlesArray = [letters componentsSeparatedByString:@" "];

提前致谢

弗兰·马丁

在这里,您有一个很好的示例项目教程。这就是您要寻找的。

这是为TableView建立索引的示例,但是对于节和行有一个很好的示例

在此示例中,此方法对您非常有用

static NSString *letters = @"abcdefghijklmnopqrstuvwxyz";

// This method returns an array of dictionaries where each key is a letter
// and each value is a group of words corresponding to the letter. 
+ (NSArray *) wordsFromLetters {
    NSMutableArray *content = [NSMutableArray new];

    for (int i = 0; i < [letters length]; i++ ) {
       NSMutableDictionary *row = [[[NSMutableDictionary alloc] init] autorelease];
       char currentWord[WORD_LENGTH + 1];
       NSMutableArray *words = [[[NSMutableArray alloc] init] autorelease];

       for (int j = 0; j < WORD_LENGTH; j++ ) {
          if (j == 0) {
              currentWord[j] = toupper([letters characterAtIndex:i]);
          }
          else {
              currentWord[j] = [letters characterAtIndex:i];
          }
          currentWord[j+1] = '\0';
          [words addObject:[NSString stringWithCString:currentWord encoding:NSASCIIStringEncoding]];
       }
       char currentLetter[2] = { toupper([letters characterAtIndex:i]), '\0'};        
       [row setValue:[NSString stringWithCString:currentLetter encoding:NSASCIIStringEncoding] 
           forKey:@"headerTitle"];
       [row setValue:words forKey:@"rowValues"];        
       [content addObject:row];
    }

    return content;
}

您可以从本资源中获取主要思想,但是如果您愿意,我可以修改代码。我认为效果很好

    NSMutableArray *funcsArray = [NSMutableArray array];//Here you add all your functs objects
    [funcsArray addObjects: funct1, funct2...];
    NSSortDescriptor *sortDescriptor;
    sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"name"
                                                  ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)] autorelease];
    NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
    NSArray *sortedArray;
    sortedArray = [funcsArray sortedArrayUsingDescriptors:sortDescriptors];
    NSMutableArray *funcsArrayOrdered = [NSMutableArray array];//Here you add all your functs objects
    NSMutableArray *funcsIndexed = [NSMutableArray array];
    NSMutableArray *letters = [NSMutableArray array];
    NSString *currentLetter = nil;

    int numItems = [funcsArrayOrdered count];

    for (Funct *functObj in funcsArrayOrdered) {
        NSLog(@"funct: %@", functObj.name);
        numItems--;
        NSString *string = userT.name;
        if (string.length > 0) {
            NSString *letter = [[string substringToIndex:1] uppercaseString];
            if ([currentLetter length] == 0) {
                currentLetter = letter;
            }
            if (![letter isEqualToString:currentLetter] || numItems == 0) {
                if ([letter isEqualToString:currentLetter] && numItems == 0) {
                    [letters addObject:functObj];
                    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
                    [dic setValue:currentLetter forKey:@"headerTitle"];
                    [dic setValue:letters forKey:@"rowValues"];
                    [funcsIndexed addObject:dic];
                    letters = [NSMutableArray array];
                }else{
                    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
                    [dic setValue:currentLetter forKey:@"headerTitle"];
                    [dic setValue:letters forKey:@"rowValues"];
                    [funcsIndexed addObject:dic];
                    letters = [NSMutableArray array];
                    [letters addObject:functObj];
                    currentLetter = letter;
                    if (numItems == 0 && [funcsArrayOrdered count] > 1) {
                        NSMutableDictionary *dic = [NSMutableDictionary dictionary];
                        [dic setValue:currentLetter forKey:@"headerTitle"];
                        [dic setValue:letters forKey:@"rowValues"];
                        [funcsIndexed addObject:dic];
                    }
                }
            }else {
                [letters addObject:functObj];
            }
        }
    }

现在,您将在funcsIndexed中对字典数组进行排序

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用自定义单元格创建多个部分

来自分类Dev

使用自定义QAbstractTableModel创建Qtableview后如何为单元格着色

来自分类Dev

如何使用Swift在UICollectionView单元格中加载自定义单元格(xib)

来自分类Dev

如何使NSTableView使用混合自定义单元格视图的自定义单元格视图?

来自分类Dev

快速创建自定义tableview单元格

来自分类Dev

在NSTableView中创建自定义单元格

来自分类Dev

如何在目标c中使用标签和文本字段创建自定义单元格

来自分类Dev

如何在自定义 Tableview 单元格下创建 Tableview

来自分类Dev

如何在自定义tableView单元格中显示JSON值的数组

来自分类Dev

使用Swift创建自定义表格视图单元格

来自分类Dev

将自定义单元格(使用自动布局创建)的高度设置为零

来自分类Dev

在Excel上使用自定义列表获取单元格数组最大值的公式

来自分类Dev

如何自定义单元格背景

来自分类Dev

如何自定义选定单元格的颜色?

来自分类Dev

使用自定义单元格获取UITableViewCell indexPath

来自分类Dev

可重复使用的自定义单元格

来自分类Dev

使用自定义单元格从搜索更新tableView

来自分类Dev

使用UIView的自定义表格视图单元格

来自分类Dev

UISearchController的自定义单元格

来自分类Dev

自定义单元格标签

来自分类Dev

自定义单元格重复

来自分类Dev

如何在某些单元格上使用自定义操作的CriteriaQuery SUM?

来自分类Dev

如何使用按钮标签快速访问自定义单元格的内容?

来自分类Dev

如何使用jsPDF-AutoTable插件自定义PDF中的标头单元格?

来自分类Dev

如何在ListView中使用自定义单元格下载fxml?

来自分类Dev

如何使用自定义操作删除部分中的单元格?

来自分类Dev

如何使用自定义单元格大小来提高UICollectionView的性能?

来自分类Dev

如何使用segue为Facebook iOS Friend Picker自定义背景和单元格?

来自分类Dev

如何在某些单元格上使用自定义操作的CriteriaQuery SUM?

Related 相关文章

  1. 1

    使用自定义单元格创建多个部分

  2. 2

    使用自定义QAbstractTableModel创建Qtableview后如何为单元格着色

  3. 3

    如何使用Swift在UICollectionView单元格中加载自定义单元格(xib)

  4. 4

    如何使NSTableView使用混合自定义单元格视图的自定义单元格视图?

  5. 5

    快速创建自定义tableview单元格

  6. 6

    在NSTableView中创建自定义单元格

  7. 7

    如何在目标c中使用标签和文本字段创建自定义单元格

  8. 8

    如何在自定义 Tableview 单元格下创建 Tableview

  9. 9

    如何在自定义tableView单元格中显示JSON值的数组

  10. 10

    使用Swift创建自定义表格视图单元格

  11. 11

    将自定义单元格(使用自动布局创建)的高度设置为零

  12. 12

    在Excel上使用自定义列表获取单元格数组最大值的公式

  13. 13

    如何自定义单元格背景

  14. 14

    如何自定义选定单元格的颜色?

  15. 15

    使用自定义单元格获取UITableViewCell indexPath

  16. 16

    可重复使用的自定义单元格

  17. 17

    使用自定义单元格从搜索更新tableView

  18. 18

    使用UIView的自定义表格视图单元格

  19. 19

    UISearchController的自定义单元格

  20. 20

    自定义单元格标签

  21. 21

    自定义单元格重复

  22. 22

    如何在某些单元格上使用自定义操作的CriteriaQuery SUM?

  23. 23

    如何使用按钮标签快速访问自定义单元格的内容?

  24. 24

    如何使用jsPDF-AutoTable插件自定义PDF中的标头单元格?

  25. 25

    如何在ListView中使用自定义单元格下载fxml?

  26. 26

    如何使用自定义操作删除部分中的单元格?

  27. 27

    如何使用自定义单元格大小来提高UICollectionView的性能?

  28. 28

    如何使用segue为Facebook iOS Friend Picker自定义背景和单元格?

  29. 29

    如何在某些单元格上使用自定义操作的CriteriaQuery SUM?

热门标签

归档