2010-10-04 2 views
6

Я кодирую приложение с iPad, и я должен разместить два отдельных UITableView на одном экране. Для этого приложения я не могу поместить UITableView и делить в два раздела по соображениям необходимости. Он должен быть разделен на две части. Ну, в этом случае, как я могу заполнить строки UITableView. Могу ли я создать DataSource и Delegate в отдельных классах, один для первого UITableView и другого класса DataSource и Delegate для второго UITableView или использовать другой подход более элегантный?iPad - более одного UITableView на одном экране

tks много.

ответ

11

В августе я ставлю некоторые example code online где я использую 2 различных классов для DataSource и UITableViewDelegate

+0

привет vikingosegundo! очень хороший пример кода! Я загружаю его и решу другую проблему с вашим кодом! снова, tks. – rwvaldivia

+0

:) Я рад, что это было полезно! – vikingosegundo

4

Вы можете сделать это несколькими различными способами. Самым простым является использование отдельных классов для обработки данных и делегирования протоколов для каждого вида таблицы.

В качестве альтернативы вы можете использовать один класс в качестве источника данных и делегировать для обоих, а также проверить личность табличного представления, переданного в методы протокола.

Это будет выглядеть примерно так: (я предполагаю, что этот код на контроллере представления.)

- (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

Привет Робот К. не является уродливый код, просто работает :). Выполняя «союз» с вашим кодом и кодом пользователя vikingosegundo, это спасет мой день. Tks много. – rwvaldivia

3

Да, вы можете сделать различные классы для DataSource и делегат методов для различных 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

Смежные вопросы