【问题标题】:Xcode 8 attribute "hidden" does not hide view in Interface BuilderXcode 8 属性“隐藏”不会在 Interface Builder 中隐藏视图
【发布时间】:2016-09-20 14:08:02
【问题描述】:

似乎 Apple 改变了 Interface Builder 在 Xcode 8 中的行为方式?因为当我在 Interface Builder 中的视图上的 Attributes Inspector 中检查 hidden 时,该视图仍然可见。

这使得处理视图变得非常乏味,其中某些视图需要是具有最高“z 值”的视图,即最前面的视图。

除了将它们的顺序向右更改(即更改它们的“z值”)之外,还有其他方法可以在此示例中显示绿色视图吗

在下面的图像中隐藏被选中,但我仍然没有看到下面的绿色视图。你可以下载这个trivial project at github

项目运行时,确实显示了绿色视图,但问题是在Interface Builder中工作时很烦人。

我错过了什么吗?

【问题讨论】:

    标签: xcode interface-builder swift3 xcode8


    【解决方案1】:

    我对此有相同的看法,我也认为这很烦人。我和他们让你选择在运行之前更新实际的故事板,但他们没有,现在我们必须处理它。

    虽然有一个快速的替代选项。隐藏不会在情节提要中更新,但 alpha 会。如果更改 alpha,它将在情节提要中更新,因此,如果您想查看其背后的视图,只需将 alpha 更改为 0。您可以随时轻松将其更改回来,或者如果您在代码中进行更改,而不是取消隐藏视图,只需更改代码,因此 alpha 设置为 1。

    【讨论】:

    • 感谢您的精彩提示。
    • 如果元素是 UIStackView 的一部分,那么 Alpha 的事情就不会真正起作用。使用 hidden 时,该元素将在运行时看起来好像它不是堆栈视图的一部分,但仅更改 alpha 0 将使其不可见,但仍会占用堆栈视图中的空间。这使得这种解决方法在 IB 中无效。
    【解决方案2】:

    取消选中红色视图的installed 复选框怎么样? 这也有一个缺陷,您必须记住重新安装它,但您不必更改视图的 z 顺序。

    【讨论】:

      【解决方案3】:

      这是故意的。我们不希望视图对编辑器you 隐藏,因为它会在应用程序运行时隐藏。您可以使用 Shift-Control-Click 红色视图(或使用屏幕截图左侧的文档大纲)轻松选择覆盖视图,例如绿色视图。

      【讨论】:

      • 但是如何在不改变 Z 顺序的情况下看到绿色视图在 Interface Builder 中的样子?红色视图挡住了它...
      • 可以更改 Z 顺序。只需将绿色视图带到前面。在左侧的文档大纲中,将其向下拖动到红色视图下方。或者如我之前所说,在画布中选择它,然后选择置于前面。完成后记得把它放回去!
      • 但这正是我不想想要做的,我不想记住把它放回去......容易忘记!
      • 我知道你不想想要做什么。我告诉你你做什么。我的回答是真实的,而不是让你兴奋不已。如果您不喜欢它,请向 Apple 提出改进请求——不要责怪
      • 呵呵,如果不可能的话,那就不是……这是苹果恕我直言的设计缺陷。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多