视图显示在Debug View Hierarchy中,但不显示在device / sim上

时间:2015-04-06 13:07:23

标签: ios iphone xcode view uiview

这个问题让我很困惑。我有一个小的UIView我用来显示选择了哪个按钮。但是,它没有显示在我的应用程序中 - 它应该在“本地活动”下,但不显示:

Image

没关系,我想,我只是调试视图层次结构,看看它在哪里!它看起来确实应该在哪里:

View Hierarchy 3D View — it's on top of everything!

有谁知道这里会发生什么?谢谢你的帮助!

4 个答案:

答案 0 :(得分:10)

我没有关于为什么会发生这种情况的大量信息,但是花了几个小时才找到导致这种情况发生的原因,所以这可能会帮助他人节省一些时间:

我以编程方式在视图控制器中创建了两个子视图(Subview A和Subview B);这两个都没有出现在我的设备上,即使框架'所有签出的大小和位置,alpha值以及所有其他常见的可见性问题。子视图A是视图控制器视图的子视图,子视图B是子视图A的子视图。我的设备上都没有显示,但是当我查看View Debugger Hierarchy时,我能够看到子视图B(甚至虽然它的超级视图Subview A不可见。)

长话短说,当我删除改变Subview A的图层掩码属性的代码时,问题就解决了。这是在图层上调用的确切方法:

{{1}}

我过去使用过这种方法没有任何问题,所以我确定这个问题在某种程度上是间接的,但这可能会指出将来有人朝着正确的方向发展。

编辑:

问题不仅仅是上面显示的代码,而是在调用round()之后我正在更改Subview A的帧。一旦我确定在给出其最终位置和大小之后只对Round()子视图A进行了解决,那么设备和调试器的所有问题都会得到解决。

答案 1 :(得分:8)

我很蠢 - 我修好了。我不确定为什么它在视图调试器中显示为顶部,但它落后于另一个UIView。

答案 2 :(得分:5)

我在Xcode 9中遇到了同样的问题。我的原因是我在viewDidLoad中将视图的alpha设置为0,但没有将alpha设置回1.0。 出于某种原因,Debug View Hierarchy显示了alpha为1.0 ...

答案 3 :(得分:0)

我遇到了同样的问题,但是当我重新连接电源插座后,它又开始工作了。