在iOS 9.2.1/XCode 7.2中执行segue时出现零星黑屏

在iOS 9.2.1/XCode 7.2中执行segue时出现零星黑屏,ios,iphone,segue,Ios,Iphone,Segue,选民:如果您也看到这个问题,可以告诉我吗? 当我尝试从某个场景上的按钮以模式启动视图控制器时,我所看到的问题大约每15次发生1次 这是通过iOS 9.2.1和XCode 7.2实现的,但不清楚它发生在哪个版本上。要将iOS版本调低并不容易 病征如下: 目标视图控制器在手机上不可见。取而代之的是,顶部的条(带有载体的条)变为黑色,有时它会闪烁,所以整个屏幕都是黑色的。启动视图控制器可见,但不响应 当这种情况发生时,我转到XCode屏幕并查看调试。值得注意的是,这显示了目的地屏幕,几乎与预期的一样。

选民:如果您也看到这个问题,可以告诉我吗?

当我尝试从某个场景上的按钮以模式启动视图控制器时,我所看到的问题大约每15次发生1次

这是通过iOS 9.2.1和XCode 7.2实现的,但不清楚它发生在哪个版本上。要将iOS版本调低并不容易

病征如下:

  • 目标视图控制器在手机上不可见。取而代之的是,顶部的条(带有载体的条)变为黑色,有时它会闪烁,所以整个屏幕都是黑色的。启动视图控制器可见,但不响应
  • 当这种情况发生时,我转到XCode屏幕并查看调试。值得注意的是,这显示了目的地屏幕,几乎与预期的一样。唯一的区别是其中一个视图没有执行drawRect,而另一个视图看起来都有斑点。当然,这与手机显示的内容完全不符
  • “目的地”屏幕上的“取消”按钮似乎仍在工作,因为当我按它应该在的位置时,应用程序继续运行。如果我尝试用这个按钮重新启动屏幕,它还是不起作用。因此,一旦发生这种情况,该会话的屏幕将停止工作,应用程序需要停止并重新启动
  • 提示不多,但以下信息可能会有所帮助:

    • 目标屏幕上有3个包含视图的滚动视图。所有三个子视图都有自己的drawRect。结果表明,当出现错误时,其中一个drawRects未被调用,导致显示灰色背景。斑点视图确实运行,但我不知道为什么它在视图调试中看起来是这样
    • XCode中没有警告。与NSLayout约束或演示文稿重叠无关
    • 在prepareForSegue函数的目标视图控制器上设置了两个字段
    • segue通过故事板从times按钮启动。没有丢失或额外的出口,并且它的命名正确,因为prepare函数可以捕获它
    该问题是偶发的,但如果连续多次启动/取消,则会可靠地发生

    这是屏幕抓图。我不会给你看黑屏的。只有黑色的载体和时间


    我已经解决了。事实证明,检查内存使用情况非常有用


    灰色区域应该由一个大背景填充,并绘制线条。事实证明,DruckGround的幼稚实现导致内存大小膨胀到200MB以上。我用CSTiledLayer替换了它,现在需要几MB。

    这是collectionView的第二个屏幕快照吗?第二个屏幕底部有一个collectionView,有3个日期,但大多数是3个包含自定义图形的滚动视图。灰色区域、左侧日期和顶部时间。请检查控件的Z顺序。我注意到XCODE中有一个bug,它带来了一些控件。我通常会改变一个标签的顺序,然后再恢复原样。有时这似乎可以解决它。可以解决您的问题,但如果不看代码,我很难回答。z顺序会如何影响整个屏幕的绘制?在上一个屏幕中,您有20:00 pm:D:P