【发布时间】:2014-10-29 15:55:31
【问题描述】:
我是 Xcode 中 Storyboards 实践的新手,当我只使用 xib 文件进行布局时,我在尝试做我以前做的事情时遇到了问题。
有时当我制作一个视图时,它需要一个或多个独立于主视图布局的小辅助视图。通常这些较小的视图是用于输入字段的自定义键盘,或带有几个按钮的工具栏,我将附加在键盘顶部(例如,在数字键盘上方添加“完成”按钮,因为它们由于某种原因缺少一个)。
当我使用 xib 文件执行此操作时,我可以在画布上的任意位置拖动一个新视图,它会“浮动”在那里,独立于 xib 中的其他视图。然后我可以设置它自己的布局并将按钮连接到主视图所连接的同一视图控制器的插座属性。
现在,当我使用情节提要而不是 xib 文件来进行视图布局时,我无法再将视图放置在画布上的任何我想要的位置。故事板受到更多限制/组织,每个独立视图似乎都必须在自己的“场景”中。所以当我尝试做我在 xib 文件中所做的事情时,我遇到了一个问题。它只允许我将视图控制器放在画布上,而不是普通的旧视图。
我尝试将视图直接拖到“视图大纲”左侧面板中,以便可以在视图层次结构中将其放置在我想要的位置;但是,当这个额外的视图不在主视图中时,我在屏幕上的任何地方都看不到它。也许最好的解释是用图片。
这是我通常在 xib 文件中执行的操作:
在 xib 文件中,您可以看到两个独立存在的视图(一个没有嵌套在另一个内部)。在这个例子中,我最终将额外的视图连接到视图控制器/文件所有者的插座属性。然后在 "viewDidLoad" 中,我将它分配给 UITextField 的 ".inputView" 属性,以便它用具有日期选择器、标签和完成按钮的视图替换键盘。
这是我的(失败的)尝试在 Storyboard 文件中的样子:
所以我试图从另一个角度看到同一个场景。我在 Storyboard 文件中发现,任何没有嵌套在主视图中的东西都不会出现在任何地方。所以我无法在我的额外视图文件上设置任何东西,因为我在屏幕上看不到它;它仅在“查看大纲”面板中可见。这使得我以前在 xib 文件中所做的事情不再可能了。
我现在能想到的制作这些额外视图的唯一另一种方法是在我的 Storyboard 旁边为每个视图添加一个单独的 xib 文件,这对我来说似乎有点愚蠢,因为我认为 Storyboard 应该消除对每个视图都有一个 xib。以前的方法看起来很简单,那我现在该怎么办?也许我正在以完全错误的方式解决这个问题。任何帮助将不胜感激。
【问题讨论】:
-
据我了解,故事板更多的是关于从控制器到控制器的流程。在我当前的应用程序中,我仍在使用 xibs 进行自定义视图。您可以尝试的一个想法是在主视图之外的控制器内放置第二个视图。模拟的控制器大小无论如何都不会显示出来,因此您可以根据需要在 xib 中扩展每个控制器。
-
有什么解决办法吗?
标签: xcode storyboard xcode5