iOS/Swift/Storyboard:仅使用屏幕的 *part* 添加 PageViewController?

Posted

技术标签:

【中文标题】iOS/Swift/Storyboard:仅使用屏幕的 *part* 添加 PageViewController?【英文标题】:iOS/Swift/Storyboard: Add PageViewController using only *part* of screen? 【发布时间】:2015-08-16 23:27:16 【问题描述】:

Swift 新手。我看过很多关于使用 PageViewController 的教程,但它们总是让页面视图占据整个屏幕。

我正在尝试仅在我的应用程序的一部分而不是整个屏幕中实现页面查看功能,以便其他“静态”元素(例如工具栏)可以保留。看起来有点像这样的东西......

https://imgur.com/9wM1vll ---(在嵌入图像之前需要更多代表)

...滑动会导致出现不同的图像,如各种 PageViewController 教程中所见(例如http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/)。

当我从单视图应用程序开始时,我转到 Storyboard 并尝试将“页面视图控制器”从对象库拖到 ViewController 框架中,它只是“弹回”,即它不会让我添加页面视图控制器。

现在,如果我将 Page View Controller 添加到另一个 View Controller 周围的空白区域,那么这就回到了 PageViewController 占据整个屏幕的教程,我不希望这样。

如何做到这一点?

谢谢。

对不起,如果这是一个骗局,但我已经尝试并未能找到任何可以直接回答我问题的内容。最接近的是Implement PageViewController in TableViewController details 或Adding a UIPageViewController to a subview, subview only shows edge of pageContentview,但它们的相似性不足以让我理解,而且它们在我还没有学过的Objective C 中。

【问题讨论】:

【参考方案1】:

当我从单视图应用程序开始时,我转到 Storyboard 并尝试将“页面视图控制器”从对象库拖到 ViewController 框架中,它只是“弹回”,即它不会让我添加页面视图控制器。

页面视图控制器是视图控制器。因此,为了让它的视图只占据屏幕的一部分,你必须遵守视图控制器的一般规则:你需要一个自定义的父视图控制器,并且页面视图控制器必须是它​​的子视图控制器——你必须做详细的当您创建孩子并将其视图放入界面时,这需要跳舞。

要让情节提要为您跳舞,请使用 Container View 并通过其嵌入 segue 将其挂钩到页面视图控制器:

(不过,在我看来,手动学习跳舞总是更好,用代码,自己。)

【讨论】:

谢谢。我似乎无法“通过其嵌入 segue 将其挂钩到页面视图控制器”当我添加一个 Container 时,它会创建一个新的 ViewController,该 ViewController 由一个 Embed segue 连接。我无法将此 Embed segue 重新路由到我的 PageViewController:我尝试过右键单击、命令单击、转到属性检查器、查看连接(无法编辑)、删除它并重新添加它。 . 我正在看教程 (sandmoose.com/post/35714028270/…),但控制拖动不会产生“嵌入”选项。 我不确定是什么问题。我正在为我的答案添加一些屏幕截图。 好的,我已经添加了屏幕截图。尽管如此,在我看来,最好还是自己学习用代码手动跳舞。我的书教你:apeth.com/iosBook/ch19.html#_container_view_controllers 啊!在添加屏幕截图之前添加了我的评论。这有帮助,而且有效!好的,回到磨刀石!谢谢。我没有想到要在文本所在的左侧控制拖动,在“图片”之间进行控制拖动,它没有给我嵌入选项,只有“手动”...... 您不会“重新连接”它。只需删除不需要的视图控制器并从容器视图中拖出一个新的嵌入 segue 到页面视图控制器,如我的插图所示。

以上是关于iOS/Swift/Storyboard:仅使用屏幕的 *part* 添加 PageViewController?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone首屏底部神秘黑边(仅)

Swift 2:仅在全屏视频上进行屏幕旋转

Cordova 应用程序仅在分屏视图/多个应用程序视图中显示

当设备仅从纵向旋转到横向时,网页上的全屏图像被挤压

仅设置 Android 主屏幕壁纸

如何将 Android 默认相机应用设置为仅纵向