2014-01-17 29 views
0

這更是我要找的不是一個問題發表意見,但..的出列細胞在自定義的UITableView

我有一個tableview中,從一個陣列讀取細胞。我知道這不是真的鼓勵,但我想這樣做,使我的表很容易由其他開發人員配置。

我的問題出在小區出隊。這段代碼完美的工作,但我不禁想到如何寫它是不正確的。如果任何人有任何建議id愛聽到他們?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    DialogViewSection *currentSection = self.sections[indexPath.section]; 
    DialogViewCell *currentCell = currentSection.sectionCells[indexPath.row]; 

    // Configure the cell... 
    if ([currentCell isMemberOfClass:[EntryCell class]]) { 
     DialogViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kEntryCellIdentifier]; 
     cell = currentCell; 
     return cell; 
    } 
    else { 
     DialogViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kBooleanCellIdentifier]; 
     cell = currentCell; 
     return cell; 
    } 
} 
+5

你沒有幫助任何人使用這種方法。使用標準單元出隊。其他開發者學習如何正確地做到這一點更好。它更高效,開發人員將知道它應該如何工作。 – rmaddy

+0

@rmaddy好說。 – Pavan

+0

+1給maddy的評論。不要這樣做。這是一個非常糟糕的主意,並不會以任何方式幫助其他開發人員。任何值得使用它的iOS開發人員都會將代碼從窗口扔出去,並且運行尖叫。任何認爲沒關係的人都會學習錯誤的做事方式。 –

回答

2

哇,你只會讓下一個開發者更容易混淆。作爲一名開發人員,我發現它看起來很混亂,可以告訴你這不是正確的標準。

爲了您的部分細胞,你真的需要使用您的tableView的- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;委託方法,而不是爲部分返回一個細胞。因爲返回一個你想要描繪爲一個部分的單元格不會像部分視圖的行爲方式那樣工作,並且它會在您的單元格上方懸停,直到下一個部分向上滾動。檢查iOS設備上的聯繫人應用程序,瞭解部分視圖在大多數一般情況下應如何運行。

你也將要出隊細胞正常的方式也一樣,讓你的UITableView處理。它也將允許其他開發人員瞭解直接發生的事情。

就像一個想法:

考慮使用含陣列多維字典來存儲你的部分和小區數據人的指數在一個地方這樣的數據模型可能是這個樣子:

NSMutableDictionary index{ 
    "Section 1" = array(
        section cell, 
        array(
         Cell 1, 
         Cell 2, 
         Cell 3, 
        ) 
       }, 
    "Section 2" = array(
        section cell, 
        array(
         Cell 1, 
         Cell 2 
        ) 
       }, 
    "Section 3" = array(
        section cell, 
        array(
         Cell 1, 
         Cell 2, 
         Cell 3, 
         Cell 4 
        ) 
       } 
} 

這樣的陣列可以由具有存儲在一個NSDictionary與陣列中存儲在所述陣列的所述第一元件和在第二個元件可以存儲包含關聯到該陣列中的所有你的細胞另一個陣列的部分單元中的所有的段被創建。

我不建議你存儲在數組定製單元,而是存儲數據將填充你的細胞來代替。

+0

好吧,這是有道理的,我會解決這個問題。謝謝 – DBoyer

+0

好,好吧,如果一切都有意義,那麼請標記此帖以供其他用戶查看。 Goodluck實施這一切。 – Pavan

+0

很抱歉忘了這麼做!積分都是你的 – DBoyer