是否可以使用 Storyboards 创建非全屏 UITableView?

Posted

技术标签:

【中文标题】是否可以使用 Storyboards 创建非全屏 UITableView?【英文标题】:Is it possible to create a non-full screen UITableView using Storyboards? 【发布时间】:2012-03-29 09:57:23 【问题描述】:

我想创建一个视图控制器,在屏幕顶部有一个 UITableView,在底部有一个固定视图(其中包含各种按钮等)。 (即:UITableView 周围滚动视图的下方。)

虽然使用传统的 NIB 文件方法这很简单,但目前(从 Xcode 4.3.1 开始)似乎没有一种方法可以使用我能找到的 Storyboards 来做到这一点。

因此,我只是想知道目前这是否可行,如果可行,最好的方法是什么。

【问题讨论】:

【参考方案1】:

这与 XIB 的过程几乎相同:

    将“普通”UIViewController 拖放到情节提要上 将类从 UIViewController 更改为您自己的实现 UITableViewDelegate 和 UITableViewDataSource 的自定义类 将 UITableView 拖放到视图控制器上 将代理连接到您的自定义类

【讨论】:

该死的。认为这是“只见树木不见森林”的时刻之一。 几乎一样,除了你不能使用 refreshControl 和其他关于 uitableviewcontroller 的东西,而不是 uitableview【参考方案2】:

我想更彻底地解释一下如何做到这一点

首先从视图控制器开始

下一次拖动 UITableView 对象它会填满整个屏幕我不知道为什么,但确实如此。就接受吧。好消息是您可以以编程方式移动它(这很好)

然后仔细检查视图控制器插座看起来像这样(记住你是 ctrl-click VIEW CONTROLLER 而不是 TableView !!!)

然后在左侧窗格中选择 TableView,然后在左侧导航中选择 =V= 图标

最后一步在 viewDidLoad() 中添加以下代码,它将使 TableView 有边框

 //do both of these to ensure ALL The screen goes black (if you want it black)
 self.view.backgroundColor = .black
 tableView.backgroundColor = .black

 tableView?.frame = CGRect(x: 10, y: (self.tableView?.frame.origin.y)!, width: (self.tableView?.frame.size.width)!-20, height: (self.tableView?.frame.size.height)!)

【讨论】:

以上是关于是否可以使用 Storyboards 创建非全屏 UITableView?的主要内容,如果未能解决你的问题,请参考以下文章

PresentViewController 一个带有 UINavigationController 的非全屏 UIViewController

关于全屏显示问题处理

笔尖中的非全屏表格视图

Unity发布的WebGL页面应用实现全屏/非全屏切换

如何在objective-c iPhone的视图中显示特定尺寸(非全屏)的视图?

java 动态切换全屏,非全屏