Xcode 8中的属性“hidden”在界面生成器中无法隐藏视图

5
似乎苹果在Xcode 8中改变了Interface Builder的行为?因为当我在Interface Builder中检查视图上的“Attributes Inspector”中的“hidden”时,该视图仍然可见。这使得处理需要成为具有最高“z值”的视图(即前面最前面的视图)的某些视图变得非常繁琐。
有没有其他方法显示此示例中的绿色视图,而不是将它们的顺序更改为正确的(即更改它们的“z值”)?
在下面的图像中,已选中“hidden”,但我仍然看不到下面的绿色视图。您可以在github上下载此微不足道的项目
运行项目后,确实会显示绿色视图,但问题在于在Interface Builder中工作时很烦人。

enter image description here

我有什么遗漏吗?

3个回答

5

我对此持有相同的看法,也认为这很烦人。我希望他们能提供在运行时之前更新实际故事板的选择,但他们没有这样做,所以现在我们必须处理它。

不过,有一个快速的替代选项。隐藏不会在故事板中更新,但 alpha 会。如果您更改 alpha,则会在故事板中更新,因此,如果您想查看其后面的视图,请将 alpha 更改为 0。您可以随时轻松地将其更改回来,或者如果您在代码中进行操作,而不是取消隐藏您的视图,只需更改代码,使 alpha 设置为 1。


感谢这个好提示。 - Borzh
如果元素是 UIStackView 的一部分,Alpha 属性实际上并不起作用。使用 hidden 属性,在运行时,该元素将看起来好像不是 stack view 的一部分,但只是将 alpha 值设置为 0,则该元素将不可见但仍占据 stackview 中的空间。这使得在 IB 中此解决方法无效。 - Jonny

3
如何取消红色视图的已安装复选框呢?这种方法也有缺陷,需要记得重新安装,但是不需要改变视图的z-order。

1
这是有意为之的。我们不想让视图在应用运行时被隐藏而从编辑器中被隐藏,以免影响您的编辑工作。您可以使用 Shift-Control-Click 在红色视图上轻松选择被覆盖的视图,例如绿色视图(或者使用屏幕截图左侧的文档大纲)。

1
但这正是我不想做的事情,我不想记得把它放回去...很容易忘记! - Sajjon
2
我知道你不想做什么。我告诉你可以做什么。我的答案旨在真实,而不是让你兴奋到骨髓里。如果你不喜欢它,请向苹果提出增强请求,不要责怪我。 - matt
1
如果不可能的话,那就不可能了...在我看来,这是苹果设计上的缺陷。 - Sajjon
@Jonny,在IB中的“预览”是所见即所得的(在辅助编辑器中显示),但画布不是,也从来没有过。期望它会这样是很愚蠢的。毕竟,拖动手柄、框架矩形和指导线等所有内容都不会出现在运行的应用程序中。此外,如果一个隐藏的视图完全不可见,你怎么选择它?或者知道它的存在吗? - matt
@matt,我一定做错了什么,因为隐藏的视图在预览中仍然可见。如果视图被隐藏,您可以使用控制-Shift-点击(猜测它们可能在哪里)选择它们,或者使用文档大纲(我自己经常使用这个)。 - Jonny
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接