如何在不改变其位置的情况下在界面生成器中将子视图置于前面

Posted

技术标签:

【中文标题】如何在不改变其位置的情况下在界面生成器中将子视图置于前面【英文标题】:How to bring subview to front in interface builder without changing its position 【发布时间】:2019-01-03 07:04:37 【问题描述】:

我想问一个简单的问题,如何在不通过拖放更改其位置的情况下临时将子视图置于前面以查看其元素。我一直面临的问题是我忘记将视图放回那里,如果您正在处理具有大量子视图的视图,这会导致很多麻烦。

问题:是否有任何快捷方式或任何功能可以临时显示视图而无需拖动、更改其框架或对其层次结构进行任何更改。

对于这样的视图控制器:-

【问题讨论】:

请试试这个...[self.view bringSubviewToFront:YOUR_VIEW_NAME]; 没有别的办法。只需将您的视图拖到层次结构的顶部,它就会在情节提要中对您可见。 先阅读问题@NiravKotecha 我知道已经让我们看看是否有人提出了解决方案@VirenMalhan 如果您不需要它,暂时将最顶部的视图 alpha 值设置为零 (0)。这将起到作用,因为具有非常低 alpha 的视图没有响应。希望这会有所帮助。 【参考方案1】:

仅供参考,对于那些想知道的人,最靠近列表底部(左侧)的视图将显示在前面。所以在下面的例子中,视图 'a' 将在 'b' 前面,而 ​​'b' 将在 'c' 前面

XIB:

【讨论】:

【参考方案2】:

如果您需要让您的视图易于查看/编辑,而无需重新排列它们,我实际上建议您将它们分解成自己的视图,然后在代码中以正确的顺序将它们拼接在一起。这将确保所有元素都以正确的顺序放置,并且始终易于编辑。像这样的:

然后在您的代码中,在 viewDidLoad 之类的地方:

[self.view addSubview:view2];
[self.view addSubview:view3];

【讨论】:

感谢您的建议,但我在问题中明确提到我想在界面生成器中执行此操作,只是为了快速查看视图,有很多方法可以做到这一点,我知道它们也是。 @dreamBegin 如果您只是想快速查看并且不需要进行任何编辑,只需将有问题的视图拖到 IB 的画布上进行检查,然后 ctrl- z 把它放回去。 我已经知道这一点,正如我在问题中已经提到的那样,但是如果我们忘记执行 ctrl-z,有时事情会变得很沉重。我想知道那个时候是否有快捷方式或类似我们按住键并选择视图突出显示的视图,但我现在确认 X-Code 中没有这种类型的功能。顺便说一句,我感谢你的努力。

以上是关于如何在不改变其位置的情况下在界面生成器中将子视图置于前面的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 OLE 的情况下在 delphi 中将 word 文档转换为 pdf?

如何在此扩展程序中创建一个按钮,在不使用操作按钮的情况下在主应用程序中打开特定视图?

如何在不使用 AudioQueueRef 的情况下在 AudioQueue 中设置音量?

如何在不使用对话框的情况下在操作栏上方显示视图?

如何在不使用outerHTML的情况下在javascript中将标签作为文本? [复制]

如何在不使用 getline 的情况下在 C++ 中将输入字符串直到行尾