2017-03-04 110 views
0

我有ViewController与TableView和SearchBar。 在TableView中有与用户联系人的单元格。UITableView与部分和搜索字段

所有联系人都存储在我从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 
} 
} 

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

+0

你的新json看起来并不特别“友好”。你应该如何将每个用户与某个部分联系起来? JSON应该在该数组中包含标题和用户数组的每个部分的章节数组 – Paulw11

+0

在我的情况 - 这个项目列表是有序的。如果按照您的建议将JSON更改为友好格式 - 应如何实现搜索功能? – moonvader

+0

就像你现在做的一样;你会搜索数据;您可以创建一个包含联系人和部分名称的对象数组并进行搜索。 – Paulw11

回答

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上,如果我想部分的items.count,我只需要dataArray[index][@"items"].count。顺便说一下,我只是建议你一个想法,但我认为这是最好的方式。

这里是关于我的思考的考验。它工作正常。

enter image description here

enter image description here

这里是我的项目是共享的URL。 click here

+0

谢谢!将尝试它! – moonvader

+0

这是我的荣幸帮助你。 –

+0

也许你有像上面的图片一样的搜索实现?我想在用户搜索时隐藏段落标题 – moonvader