动态生成UITableViews

时间:2012-03-27 14:52:53

标签: iphone objective-c ios uitableview

好的我正在拨打网络服务以获取政策。用户可以有多个策略,这些策略是有自己的表(请注意表中没有自己的部分)。这些表中可能包含未知数量的行,具体取决于策略修订的数量加上策略本身。所以我需要在UIScrollView上动态生成表格。有谁知道我怎么做到这一点?如果您不理解我,请询问。

3 个答案:

答案 0 :(得分: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
        }
    }
}

答案 1 :(得分:2)

我建议创建一个分段表视图。因此,您可以在每个部分中加载策略。并且您可以在每个部分提供一些部分标题以提供更多信息。

答案 2 :(得分:2)

N个策略的教科书方法,每个都有M个修正(N和M任意且可能很大)是UINavigationController,在根级别有一个策略表。选择行(策略)会推送到策略详细信息视图控制器,该控制器包含该策略的修订表。