将多个视图添加到容器视图

Adding multiple views to a container view

我正在考虑将多个 TableView 添加到现有的 UI 视图控制器。

我已经看到 https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html 这似乎是我要走的路。

但是,我的问题是我可以将多个 TableView 嵌入到一个 ContainerView 中吗?

我的应用程序进行了各种测试并得出了结果。每次测试完成后,我想添加一个 TableView,以便它们整齐地显示在彼此下方。

这可能吗?

是的,你可以。你可以做两件事:

ONE View Controller - MANY Table Views (as subview of the root view)

ONE Container Controller - MANY ChildViewControllers using VC containment (and each has one Table View )

这就是您可以在 ViewDidLoad 中为 UIViewController 子类执行的操作。

// Do any additional setup after loading the view, typically from a nib.

CGRect frame = self.view.frame;

// this container shall hold the two tables that I am going to add later
// container shall share the same size as view controller's "view"
UIView *container = [[UIView alloc] initWithFrame:frame];

frame.size.height = frame.size.height / 2; // I want to fit two table view vertically to cover the container view

UITableView *tableView1 = [[UITableView alloc] initWithFrame:frame];
tableView1.backgroundColor = [UIColor redColor];
// ...
// ...
// Assign more table view properties here
// ...
// ...
[container addSubview:tableView1];

frame.origin.y = frame.size.height; // update coordinates for the second table view

UITableView *tableView2 = [[UITableView alloc] initWithFrame:frame];
tableView2.backgroundColor = [UIColor greenColor];
// ...
// ...
// Assign more table view properties here
// ...
// ...
[container addSubview:tableView2];

[self.view addSubview:container];

您必须为所有 tableview 设置 Delegates 才能使它们正常工作,但这应该能让您有所作为。 (我添加了一些不同的背景颜色来区分两个 tableviews)