2014-09-04 78 views
2

我不熟悉Xcode中的Storyboards的实践,当我只使用xib文件进行布局时,我遇到了一个问题,试图执行我使用的操作。如何将多个独立视图添加到单个故事板场景?

有时,当我制作视图时,它将需要一个或多个独立于主视图布局的小二级视图。通常这些较小的视图就像输入字段的自定义键盘,或者带有几个按钮的工具栏,我将它们附加在键盘上(例如,在数字键盘键盘上添加“完成”按钮,因为它们由于某种原因缺少一个)。

当我使用xib文件来做到这一点时,我可以在画布的任何位置拖动一个新视图,并且它会在那里“浮动”,而与xib中的其他视图无关。然后,我可以设置它自己的布局,并将按钮连接到主视图所连接的同一视图控制器的插座属性。

现在,当我使用故事板来执行视图布局而不是xib文件时,无法在画布上随意放置视图。故事板更受限制/组织,并且每个独立视图似乎都必须处于它自己的“场景”中。所以当我尝试做我在xib文件中做的事情时,我遇到了一个问题。它只允许我在画布上放置视图控制器,而不是普通的旧视图。

我试过将视图直接拖到“View Outline”左侧面板中,以便我可以在视图层次结构中将其放在我想要的位置;但是,当这个额外的视图不在主视图内时,我无法在屏幕上的任何地方看到它。也许最好的为什么解释这是与图像。

这是我在厦门国际银行文件通常做: xib file showing extra views

在XIB文件中可以看到两种观点独立存在的(一个没有嵌套在另一个里面)。在这个例子中,我将最终将视图控制器/文件所有者中的额外视图连接到outlet属性。然后在“viewDidLoad”里面,我将它分配给UITextField的“.inputView”属性,以便它用具有日期选择器,标签和完成按钮的视图替换键盘。

这里是我的(失败)的尝试看起来像一个Storyboard文件: enter image description here

所以我试图让其他视图进入同一个场景。我在故事板文件中发现,任何不嵌套在主视图中的东西都不会显示在任何位置。所以我无法在我的额外视图文件中设置任何内容,因为我无法在屏幕上看到它;它仅在“视图大纲”面板中可见。这使得我以前在xib文件中做的事情不再可能。

我现在想出的另外一种方法是为每个人添加一个单独的xib文件,这对我来说似乎很愚蠢,因为我认为Storyboards可以消除需求因为每个视图都有一个xib。旧的方式似乎很简单,那么我现在该做什么?也许我正在以完全错误的方式去解决这个问题。任何帮助,将不胜感激。

+0

从我的理解,故事板更多地是从控制器到控制器的流程。在我目前的应用程序中,我仍然使用xibs来定制视图。你可以尝试的一个想法是在主视图之外的控制器中放置第二个视图。模拟的控制器尺寸不是它们将以任何方式显示的那样,因此您可以尽可能多地扩展xib中的每个控制器以编辑它。 – mitrenegade 2014-09-04 19:12:03

+0

任何解决方案? – vivin 2016-02-08 21:37:30

回答

0

只需双击左侧文档大纲中的第二个视图。您的视图将显示在包含它的场景附近的故事板上。

相关问题