将多个视图添加到容器视图
Adding multiple views to a container view
我正在考虑将多个 TableView 添加到现有的 UI 视图控制器。
但是,我的问题是我可以将多个 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)
我正在考虑将多个 TableView 添加到现有的 UI 视图控制器。
但是,我的问题是我可以将多个 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)