如何让 UIToolbar 在静态表格视图中正确显示?

Posted

技术标签:

【中文标题】如何让 UIToolbar 在静态表格视图中正确显示?【英文标题】:How can I get UIToolbar to display correctly in a static tableview? 【发布时间】:2012-04-26 12:57:35 【问题描述】:

在情节提要中,我将 UIToolbar 拖到我的静态 tablView 上。出于某种原因,工具栏在情节提要中显示得很好,但是当我运行它时,工具栏根本不显示。然后我尝试删除它,以便我可以拖出一个新的,但工具栏甚至没有出现在我的文档大纲中 - 我也无法通过在情节提要中单击它来选择它。于是我尝试拖出另一个工具栏并将其放在那个工具栏的顶部,并且那个工具栏出现了,但是模拟器屏幕底部有一个白色间隙:

然后我删除了第二个工具栏并尝试了我在网上找到的几个解决方案,但它们似乎都已过时且容易出错。我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

当我想这样做时,我使用 UIViewController 而不是 UITableViewController。 首先通过从对象库中拖动它来添加工具栏更容易,然后从同一个库中拖动一个 tableView,它将自动适应场景中剩余空间的大小。

如果您需要实现委托和数据源方法,则必须声明它

@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
...
@end

如果您想为 tableView 使用 IBOutlet,请不要忘记将 MyViewController 设置为 tableView 的委托和数据源,方法是在情节提要中连接它或通过代码。

如果您需要更多详细信息,请发表评论:)

【讨论】:

我收到一些关于非法配置的错误。这是我采取的步骤。我拖出一个viewcontroll。我拖出一个工具栏。我拖出表格视图。我创建了一个 UIViewController 自定义类,并将其连接到身份检查器中的视图,并将控制从 tableview 降级到 customviewcontroll.h 以创建一个插座。我将自定义类设置为 tvdelegate 和数据源,并将它们连接到 tableview 中。我收到一条错误消息,指出这是非法配置:静态表视图仅在嵌入 UITableViewController 实例时才有效。 在做了更多研究后,我发现添加工具栏只是简单地声明 [self.navigationController setToolbarHidden:NO];在 viewDidLoad 中。

以上是关于如何让 UIToolbar 在静态表格视图中正确显示?的主要内容,如果未能解决你的问题,请参考以下文章

UIToolBar 动画与视图转换不正确

静态单元的约束不明确

带有 Prev/Next 的 UIToolbar 在多个分段的 tableview 故事板中利用多个文本字段

如何让表格视图滚动到图像视图上方?

用 UIToolBar 替换 UITabBar

iOS7中的UIToolbar颜色不正确