2017-03-04 107 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