是否可以使用 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