Xcode模拟器显示空白屏幕,直到退出调试器

时间:2015-10-28 00:22:12

标签: ios iphone xcode swift ios-simulator

我跟随斯坦福冬季2015年在ItunesU上对Swift的介绍来创建一个自定义视图控制器(我使用Xcode 7)。我已经创建了一个自定义视图,目前只使用UIBezierPath实现两个圆圈(我的drawRect函数的代码如下所示,我相信这是我项目中唯一与我期望在模拟器中看到的简单显示有关的代码。我的自定义视图控制器为空,我已删除视图已加载功能)。我已将此自定义View Controller设为初始视图控制器,并且未使用主屏幕。我在我的视图中使用了@IBDesignable来演示我期望在我的故事板中看到的内容,这在下面的第一张图片中显示(目前只是一个链接,因为我无法嵌入还是新成员)。当我构建并运行我的项目以启动模拟器时,我看到一个带有苹果标志的黑色屏幕,然后一旦模拟器加载,我就会得到一个完全空白的屏幕(如下图2所示)。现在我发现这个奇怪的原因是因为我能够在我的故事板中查看我期望看到的内容,并且我可以执行以下步骤让我的应用程序在模拟器中显示,但每次都很烦人:
1。在模拟器运行时,单击"停止按钮"在xcode中结束调试器。这会将模拟器带回主屏幕 2.在模拟器的主屏幕上,运行我的应用程序 我现在可以在模拟器中正确显示我的简单显示,正如我在故事板中看到的那样。 (这将在图3中显示,但我不能发布超过2个链接作为新手)

图片:
Storyboard view of my app

Blank screen after starting simulator

[正确显示应用程序的模拟器] [3]

除了这个简单的显示外,我还尝试添加NSAttributed字符串,在这之后我用来让我的应用程序在模拟器中显示的烦人技巧不再有效。但是,我也注意到了#34恼人的伎俩"如果我在我的属性字符串上省略某些属性,那么让它显示仍然有用。另外,我没有在控制台输出中收到任何错误消息,唯一的输出是"(lldb)。"那么当我从xcode运行模拟器时,有没有人有任何想法为什么显示器没有正确显示?

    override func drawRect(rect: CGRect) {
    let checkOutButtonCircle = UIBezierPath(arcCenter: inOutCircleCenter("Out"), radius: InCircleRadius, startAngle: 0, endAngle: CGFloat(2*M_PI), clockwise: true)
    let checkInButtonCircle = UIBezierPath(arcCenter: inOutCircleCenter("In"), radius: InCircleRadius, startAngle: 0, endAngle: CGFloat(2*M_PI), clockwise: true)
    checkInButtonCircle.lineWidth = lineWidth
    checkOutButtonCircle.lineWidth = lineWidth
    backgroundColor = UIColor.yellowColor() 
    color.set()
    //draw the actual circle
    checkInButtonCircle.stroke()
    checkOutButtonCircle.stroke()
    }

1 个答案:

答案 0 :(得分:0)

如果设置了断点,可能会发生类似这样的事情。在初始化UI之前,它可能会将您转储到调试器中,从而导致出现空白屏幕。当您从模拟器主屏幕启动时,调试器未附加,因此您的断点不会停止代码。

查看Xcode中最左侧列的断点选项卡。如果你看到断点,看起来像这样:

enter image description here

...然后点击它们并按删除键将其删除。