使用 NSArray 加载 UITableView

发布于 2024-12-25 12:19:00 字数 276 浏览 0 评论 0原文

我有一个 NSDictionaries 的 NSArray ,其中每个字典都有相同的键。我想要数组中每个字典的一个部分。

例如,如果数组有 4 个字典,则表将有 4 个部分。然后每个部分中的每个单元格将与字典中的该值相对应。

有没有简单的方法可以做到这一点?

例如,我有一个包含 3 个字典的 NSArray,其中每个字典有 3 个键:姓名、性别和日期。

这意味着该表应该有 3 个部分,其中每个部分的标题都是其字典的日期键。然后该部分有 2 个单元格,对应于姓名和性别值。

I have an NSArray of NSDictionaries where each dictionary has the same keys. I want a section for each dictionary in the array.

For example, if the array has 4 dictionaries, then the table will have 4 sections. Then each cell in each section will correspond with that value in the dictionary.

Is there an easy way to do this?

For example, I have an NSArray with 3 Dictionaries where each dictionary has 3 keys, name, gender, and date.

This means that the table should have 3 sections, where each section title is the date key for its dictionary. Then there are 2 cells for that section corresponding to the name and gender values.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱花细雨 2025-01-01 12:19:00

是的,我熟悉这些方法,但我不知道如何获得
字典中的日期键正确设置在
titleForHeaderInSection 方法。

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    return (NSString *)[myArray objectAtIndex:section] objectForKey:@"date"];
}

这工作完美无缺。但是如何以类似的方式编辑 cellForRowAtIndexPath 中的代码呢?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    /* Create myCell UITableViewCell */

    NSString *value = @"Unknown";
    if (indexPath.row == 0){
        value = (NSString *)[[myArray objectAtIndex:indexPath.section] objectForKey:"name"]; 
    }else if (indexPath.row == 1){
        value = (NSString *)[[myArray objectAtIndex:indexPath.section] objectForKey:@"gender"]; 
    }

    myCell.textPropertyOrWhatever = value;
    return myCell;
}

你甚至尝试过这个吗? :P

Ya I'm familar with those methods, but I'm not sure how to get the
date key from the dictionary correctly setup in the
titleForHeaderInSection method.

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    return (NSString *)[myArray objectAtIndex:section] objectForKey:@"date"];
}

This worked flawlessly. But how can I edit the code in cellForRowAtIndexPath in a similar manner?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    /* Create myCell UITableViewCell */

    NSString *value = @"Unknown";
    if (indexPath.row == 0){
        value = (NSString *)[[myArray objectAtIndex:indexPath.section] objectForKey:"name"]; 
    }else if (indexPath.row == 1){
        value = (NSString *)[[myArray objectAtIndex:indexPath.section] objectForKey:@"gender"]; 
    }

    myCell.textPropertyOrWhatever = value;
    return myCell;
}

Are you even trying this at all? :P

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文