带有节和搜索字段的UITableView

时间:2017-03-04 20:39:48

标签: ios objective-c swift uitableview

我有ViewView和TableView和SearchBar。 在TableView中,有一些用户联系人。

所有联系人都存储在我从JSON获取的数组中。还有用于搜索的单独数组。当用户在SearchBar中输入内容时 - 我使用SearchBar TextField中的字符串过滤我的完整联系人数组。一切看起来都很简单。

但突然有一些新功能被添加到我的应用程序 - 部分。 以前我用一系列用户获得了JSON,每个用户都得到了名字和电话。但是知道我也有段数组,每个部分都有段名和项目数。

之前

{
users: [
{
name: "Jack",
phone: "123-456-78"
},
{
name: "John",
phone: "768-789-98"
},
{
name: "Kate",
phone: "123-879-001"
}
]
} 

之后

{
users: [
{
name: "Jack",
phone: "123-456-78"
},
{
name: "John",
phone: "768-789-98"
},
{
name: "Kate",
phone: "123-879-001"
}
],
sections: [
{
title: "Section 1",
itemsCount: 2
},
{
title: "Section 2",
itemsCount: 1
}
} 

在这种情况下,为代码添加部分的最佳方法是什么?或者我应该考虑从服务器重组数据结构?

1 个答案:

答案 0 :(得分:1)

如果我需要实现您想要的功能,我想我会从服务器重新组织数据结构,如下所示:

dataArray = [
 {
  title:"section1",
  items:[
           {
            name: "Jack",
            phone: "123-456-78"
           },
           {
            name: "John",
            phone: "768-789-98"
           },
           {
            name: "Kate",
            phone: "123-879-001"
           }
        ]
 },
 {
  title:"section2",
  items:[
           {
            name: "Jack",
            phone: "123-456-78"
           },
           {
            name: "John",
            phone: "768-789-98"
           },
           {
            name: "Kate",
            phone: "123-879-001"
           }
        ]
 }
]

然后在iOS中,如果我想要section.count的部分,我只需要dataArray[index][@"items"].count。 顺便说一句,我只是建议你的想法,但我认为这是最好的方式。

这是对我思考的考验。它工作正常。

enter image description here

enter image description here

这是我的项目共享的网址。click here