iOS 通过故事板将 UIView 锁定在导航栏下方和 UITableView 上方

Posted

技术标签:

【中文标题】iOS 通过故事板将 UIView 锁定在导航栏下方和 UITableView 上方【英文标题】:iOS Lock a UIView in place under the Nav Bar and above a UITableView via storyboard 【发布时间】:2012-07-19 02:46:50 【问题描述】:

我使用storyboard 来布置我的GUI 对象。所以我有一个UITableViewController,其中包含一个表格视图和一个导航栏。表视图包含一个视图和表视图单元格。该视图包含一个UITextField、一个UIButton 和一个UILabel

当应用程序运行时,一切都会显示我想要的效果,并且视图位于导航栏下方和表格的第一个单元格上方。滚动时会出现问题。视图(带有文本字段、按钮和标签)也在滚动。我希望将视图锁定到位,并让表格单元格在其下方滚动。

我认为我可能需要在我的UITableViewController .m 文件中的scrollViewDidScroll: 中实现一些代码,但我真的不确定。我更喜欢一种解决方案,它允许我使用storyboard 来布置我的 GUI 对象,然后将它们与一些支持代码连接起来,而不是通过编程来完成整个事情。

我打算在storyboard 中包含我如何布置的图片,但我作为一个新用户我不被允许:-(

提前致谢:-)

PS:如果您尝试将 UIViewUITableViewController 中拖出,那么 IB 会将视图放置在与第一响应者和视图控制器相同的级别,然后我什至看不到 UIView如果我运行应用程序。

【问题讨论】:

你是如何创建 UITableViewController 的? 在情节提要中 - 所有的 GUI 对象都已使用情节提要创建。 检查两个答案,也许你的答案就在那里。 @luyuan 答案是一样的。 是的。您是否直接从情节提要中拖动 UITableViewController ?或者通过拖一个 UIViewController 然后拖一个 UIView 和一个 UITableView 进去? 【参考方案1】:

实际上,您可以将视图从UITableViewController 中拖出。但请确保您不是通过从storyboard 拖动UITableViewController 直接创建UITableViewController。您可以创建一个新的UIViewController 并将tableviewview 拖入其中。请记住将tableviewdelegatedatasource 设置为UIViewController。然后视图被锁定在那里。

【讨论】:

谢谢@MattS。我实现了这个并且它有效。我在情节提要中完成了这一切。最后我没有打扰视图。我只是使用了一个 UIViewController 并向其中添加了 UITextField,然后在其下放置了一个 UITableView。【参考方案2】:

尝试使用UIViewController 而不是UITableViewController,并像没有 Storyboard 一样创建和管理表格视图。我目前正在开发的应用程序中发生了这种情况,这是我能找到的唯一解决方法。

【讨论】:

谢谢。这可能是我必须走的路。您无法将情节提要中的视图添加到 UITableViewController 是一种痛苦(但我想它的工作是照顾表视图),当它被添加到 UITableView 时,似乎没有任何简单的方法来锁定它位置。在 IB 中保留我所有 GUI 对象的可视化表示会很好。

以上是关于iOS 通过故事板将 UIView 锁定在导航栏下方和 UITableView 上方的主要内容,如果未能解决你的问题,请参考以下文章

ios故事板将视图放在superview中间的右侧

UITableView 部分索引在 iOS 7 中定位错误的单元格,顶行隐藏在导航栏下

在 iOS 7 的导航栏下添加视图的最佳方法是啥

使用故事板将原型单元连接到不同的场景

在iOS 7中隐藏导航栏时,如何更改状态栏的颜色?

UITableView 和分段控制器在 IOS 11 导航栏下移动