2014-08-31 22 views
0

所以我有一個UITableView與聯繫人列表設置。所有的聯繫人都根據他們的名字分成不同的部分,並按字母順序排列。我試圖讓它選擇他們想要添加的人。在我的didSelectRowAtIndexPath方法中,當我使用indexPath.section或indexPath.row時,我總是得到錯誤的結果。以下是我使用.row和.section得到的結果。iOS indexpath.row和indexpath.section

Name | Section | Row | Cell index 
--------------------------------- 
Adi | 0  | 0 | 0 
Andy | 0  | 1 | 1 
Ben | 1  | 0 | 2 
Jay | 2  | 0 | 3 
Jim | 2  | 1 | 4 
Joe | 2  | 3 | 5 

是否有無論如何我可以得到實際細胞指數使用didSelectRowAtIndexPath方法?

+0

唯一看起來不對的是「喬」。喬應該是第2部分,第2行。你確定你注意到了嗎? – danh 2014-08-31 19:16:46

+0

你是如何設置數據源的?你的代碼在'tableView:cellForRowAtIndexPath:'?只需做一個反算計算,或者爲你的單元格添加一個索引(自定義單元格?)並讀取它。 – Larme 2014-09-01 08:09:50

回答

0

這是絕對正確的。索引路徑包含行索引範圍0...n PER索引節(也範圍0...n)。

這允許您創建一個數組結構是怎樣的

@(@(@"section 0", @"section 0" @"section 0"), @(@"section 1", @"section 1")) 
0

選項1:建立數據數組的數組。頂部數組中的每個元素都與一個部分相匹配,部分數組中的每個元素都與一行相匹配。

選項2:編寫一種方法,通過將前面各節中的所有行相加並調整索引路徑中的行,來計算節和行的單元索引。