2012-03-27 7 views
1

Хорошо, я звоню в веб-службу, чтобы вернуть политики. Пользователь может иметь несколько политик, и эти политики должны иметь собственную таблицу (обратите внимание, что в таблице нет собственного раздела). Эти таблицы могут содержать неизвестное количество строк в зависимости от количества поправок к политике и самой политики. Поэтому мне нужно динамически генерировать таблицы для этого в UIScrollView. Кто-нибудь знает, как я могу это сделать? Если вы меня не понимаете, тогда спросите.Динамически генерировать UITableViews

ответ

3

Вы можете создать UITableViews программно с

UITableView *tableView = [[UITableView alloc] init]; 

затем установите контроллер представления, чтобы быть делегатом и данные источника табличном:

tableView.delegate = self; 
tableView.dataSource = self; 

и добавить представление таблицы на ваш взгляд прокрутки таких как:

tableView.frame = CGRectMake(0, 0, 320, 500); //use whatever frame you want here 
[self.scrollView addSubview:tableView]; 

и для того, чтобы отслеживать виды стола, вы можете использовать тег, связанный с каждым из них. Вероятно, они лучше всего определяются как константы в верхней части вашего файла .m. Вы можете назвать их соответствующим образом, чтобы вы знали, для какой политики должен использоваться табличный вид. Например, в верхней части .m файла:

#define kFirstPolicyTableViewTag 1 

, а затем при создании представления таблицы:

tableView.tag = kFirstPolicyTableViewTag; 

тогда, когда имеем дело с какой-либо из делегатов или исходных данных методов, проверьте чтобы вы знали, с кем вы имеете дело. Например:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    switch (tableView.tag) { 
     case kFirstPolicyTableViewTag: { 
      //return the number of rows for that tag 
     } 
    } 
} 
+0

Спасибо, очень подробно. +1 – Popeye

+0

Спасибо, +1 это помогло – Popeye

2

Я рекомендую создать секционный вид таблицы. Таким образом, вы можете загружать политики в каждом разделе. И вы можете дать заголовок раздела в каждом разделе, чтобы предоставить дополнительную информацию.

+0

Я хотел бы сделать это так, как это намного проще, но мне было поручено сделать это по-другому. Клиенты - боль. – Popeye

+0

Спасибо +1 за помощь – Popeye

2

Учебник подход N политики, каждый из которых M поправок (как N и M произвольное и потенциально большой) является UINavigationController с таблицей политики на корневом уровне. Выбор строки (политика) подталкивает к контроллеру подробных представлений политики, который содержит таблицу поправок для этой политики.

+0

Спасибо +1. Это в основном так, как я это делал, а потому, что клиент теперь передал подробности о том, как они хотят, чтобы он работал, мне пришлось его изменить. – Popeye