【问题标题】:adding a static UITableView to a regular custom view将静态 UITableView 添加到常规自定义视图
【发布时间】:2012-04-24 19:23:21
【问题描述】:

我有一个自定义视图控制器,它在下半部分有一个视图。

我想在上半部分添加一个静态 UITableView。

所以我在视图控制器上拖了一个 UITableView,但显然这是不允许的,因为静态表视图只能嵌入在 UIViewControllers 中。

我查看了我的代码并让我的控制器扩展了 UITableView,但这并不能解决问题。

如何将静态 UITableView 添加为自定义控制器中的第二个视图?

编辑:iOS 故事板可能不太支持不占据整个屏幕的表格视图。也许我只会在视图上使用常规表,因为我只需要 3 个静态行。

【问题讨论】:

  • [yoursecondview addsubview:tableview];怎么样
  • 我的表格视图应该位于我的第二视图中,但位于屏幕顶部。表格视图占据了屏幕顶部的 50%,而我的第二个视图占据了下半部分的空间

标签: iphone ios uitableview ios5 storyboard


【解决方案1】:

你应该可以做这样简单的事情:

UITableViewController *tbv = [[UITableViewController alloc] initWithFrame:[CGRect whateverSize/Location]];
[self.view addSubview:tbv];

确保在执行此操作时还要编写所需的委托函数,例如 numberOfRowsInSection:numberOfSections:cellForRowAtIndexPath:tableView:didSelectRowAtIndexPath:

请务必查看UITableView Class Reference

【讨论】:

  • 我认为静态表视图的全部意义在于不实现委托和数据源,因此编写委托函数。
  • 您仍然必须这样做,如果不指定它们,他们不知道这些值是什么。表格视图如何知道有多少行?
  • 表格包含您在情节提要中提供的部分、行和内容。
【解决方案2】:

我通过使我的第二个视图控制器成为实现委托和数据源的简单 UIViewController、在其上拖动动态表并在代码中“静态”设置行和部分来解决了这个问题。现在我的两个视图在大视图中正确地共存了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多