2010-10-04 27 views
6

我從iPad編碼應用程序,我必須在同一個屏幕上放置兩個單獨的UITableView。對於這個應用程序,我不能把UITableView和divid分爲兩部分,這是因爲必需的原因。它必須是兩個分開的。那麼,在這種情況下,我可以如何填充UITableView的行。我可以在單獨的類中創建一個DataSource和Delegate,其中一個用於第一個UITableView,另一個用於第二個UITableView的DataSource和Delegate類,或者其他方法更優雅?iPad - 在同一屏幕上的多個UITableView

需要很多。

回答

11

在八月我把一些example code online,我用2個不同類別的數據源和的UITableViewDelegate

+0

hello vikingosegundo!很好的代碼示例!我下載它並用你的代碼解決其他問題!再次,tks。 – rwvaldivia 2010-10-07 18:35:22

+0

:)我很高興,這是有幫助的! – vikingosegundo 2010-10-07 18:49:19

4

您可以通過幾種不同的方式來做到這一點。最直接的方法是使用單獨的類來處理每個表視圖的數據源和委託協議。

或者,您可以使用單個類作爲數據源和委託,並檢查傳入協議方法的tableview的標識。

它會看起來是這樣的:(我假設這個代碼是您的視圖控制器。)

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    CGFloat height = 44.0; // default height 
    if (tableView == self.myLeftTableView) { 
     height = // Compute the cell height for the left table view. 
    } else { 
     height = // Compute the cell height for the right table view. 
    } 
    return height; 
} 

這可能會變得醜陋很快,這就是爲什麼我會推薦第一種方法。

+0

嗨機器人K.不是醜陋的代碼,只是工作:)。做「聯合」whith你的代碼和用戶vikingosegundo的代碼,這節省了我的一天。很多。 – rwvaldivia 2010-10-07 18:39:42

3

是的,你可以爲數據源和委託方法針對不同的UITableView和在實際上不同的類,這是使用最好的方法與此方法相同視圖的多個表實現了MVC體系結構。 對於這種嘗試這些2個解決方案,其中第一種方法是用於在同一類和第二實施2個表的數據源和委託方法可以通過多種方法的UITableViewController或NSObject類

有關更多細節,以實現不同類不同的數據源和委託方法請點擊以下鏈接,你可以找到示例代碼太:

Handle more than one table in a View Part-1

Handle more than one table in a View Part-2