【问题标题】:stacking two UITableViews in a single view programmatically?以编程方式将两个 UITableViews 堆叠在一个视图中?
【发布时间】:2011-08-31 09:48:00
【问题描述】:

我想在一个视图中堆叠两个 UITableView。我可以在界面生成器中执行此操作,但是,我想在代码中以编程方式执行此操作。

在我的主 UIViewController 中,我在 viewDidLoad 方法中创建了两个 UITableViewController。 起初我以为我可以这样做:

[self.view addSubView:controller1.view];
[self.view addSubView:controller2.view];

但这仅显示第二个视图。我也试过:

[self.view addSubview:controller1.view];
[controller1.view addSubview:controller2.view];

但它仍然没有像上面的界面构建器那样做。

更新

我想完成这个:

two table views

我在界面生成器中所做的:

xib

但在代码中。

【问题讨论】:

  • 您的第一种方法应该是正确的。你的框架设置正确吗?你能告诉我们你想要的样子吗?你还需要2个独立的控制器吗?您应该能够将表视图本身直接添加到您的主控制器中。
  • 我认为我的框架设置不正确。我确实需要两个单独的控制器,因为我使用了两个单独的 NSFetchedResultsControllers(使用这个approach),每个都绑定到两个单独的控制器作为 UITableViewDataSource 代表。将它们合二为一会使它不必要地复杂化。我想完成this,这是在interface builder 中完成的,但仅限于代码中。如何正确设置我的框架?

标签: ios uitableview uiviewcontroller subview


【解决方案1】:

创建两个 UITableViewController 的原因是什么?只需创建两个 UITableView 对象并对其进行操作。

【讨论】:

  • 我有两个不同的 NSFetchedResultControllers 绑定到两个不同的 UITableViewControllers。我是这样构建它们的:link- 将它们组合成一个 UITableViewController 会使它变得不必要地复杂。
  • 我决定采用这种方法:两个 UITableView,一个 UITableViewController 充当 UITableViewDataSource、UITableViewDelegate 和 NSFetchedResultsControllerDelegate。在我的控制器中,我创建了两个 NSFetchedResultsControllers 并根据请求的部分在两者之间切换。
  • 哦,我很忙,没有看你的cmets。所以,我很高兴能帮助你:)
【解决方案2】:

重叠?您是否设置了不同的框架以便看到它们?

【讨论】:

  • 我认为您的方向是正确的,但我不知道该怎么做。我如何设置他们的框架不同?
【解决方案3】:
controller1.view.frame = CGRectMake(0,0,320,75);
controller2.view.frame = CGRectMake(0,75,320,385);

在一个矩形中,值是从左上角开始测量的:x,y,w,h。

【讨论】:

  • 这越来越近了,但是如果我为我的第一个视图提供了一个绝对高度,那么如果它更长,它就会被切断。此外,当我用拇指滚动时,第一个和第二个视图独立滚动。我想将它们呈现为一个视图,一个接一个,无论第一个视图的高度是多少。
  • 哦。你在谈论一个分组表。您想要一个表格,但需要指定多个部分。
猜你喜欢
  • 2020-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2016-02-09
  • 1970-01-01
  • 2011-12-28
相关资源
最近更新 更多