Xcode 模拟器显示空白屏幕直到退出调试器
Xcode simulator shows blank screen until quitting debugger
我正在关注 ItunesU 上 Swift 的 Stanford Winter 2015 介绍,以创建自定义视图控制器(我正在使用 Xcode 7)。我还创建了一个自定义视图,目前只使用 UIBezierPath 实现了两个圆圈(我的 drawRect 函数代码在下面,我相信这是我项目中唯一与我希望在模拟器中看到的简单显示有关的代码。我的自定义视图控制器是空的,我已经删除了视图加载功能)。我已将此自定义视图控制器设为初始视图控制器,并且未使用主屏幕。我在我的视图中使用了@IBDesignable 来演示我希望在我的情节提要中看到的内容,如下面第一张图片所示(目前只有 link 因为我还不能嵌入成为新成员) .当我构建并 运行 我的项目以启动模拟器时,我看到一个带有苹果徽标的黑屏,然后一旦加载模拟器,我就得到一个完全空白的屏幕(如下图 2 所示)。现在我的原因觉得奇怪是因为我能够查看我希望在故事板中看到的内容,并且我可以执行以下步骤让我的应用程序显示在模拟器中,但每次都这样做真的很烦人:
1。当模拟器处于 运行ning 状态时,单击 xcode 中的 "stop button" 以结束调试器。这会将模拟器带回主屏幕。
2. 从模拟器的主屏幕,运行我的应用程序。
3. 我的简单显示现在可以在模拟器中正确显示,就像我在情节提要中看到的那样。 (这将显示在图 3 中,但我无法 post 超过 2 link 作为新手)
图片:
Storyboard view of my app
Blank screen after starting simulator
[正确显示应用程序的模拟器][3]
除了这个简单的显示之外,我还尝试添加 NSAttributed 字符串,在这样做之后,我用来让我的应用程序在模拟器中显示的烦人的技巧不再有效。但是,我还注意到,如果我在我的属性字符串中遗漏某些属性,使它显示的 "annoying trick" 仍然有效。此外,我在控制台输出中没有收到任何错误消息,唯一的输出是“(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()
}
如果您设置了断点,就会发生这样的事情。它可能会在 UI 初始化之前将您转储到调试器中,从而导致空白屏幕。当您从模拟器主屏幕启动它时,调试器未附加,因此您的断点不会停止代码。
查看 Xcode 中最左侧列的断点选项卡。如果你看到断点,它看起来像这样:
...然后点击它们并按删除键删除它们。
我正在关注 ItunesU 上 Swift 的 Stanford Winter 2015 介绍,以创建自定义视图控制器(我正在使用 Xcode 7)。我还创建了一个自定义视图,目前只使用 UIBezierPath 实现了两个圆圈(我的 drawRect 函数代码在下面,我相信这是我项目中唯一与我希望在模拟器中看到的简单显示有关的代码。我的自定义视图控制器是空的,我已经删除了视图加载功能)。我已将此自定义视图控制器设为初始视图控制器,并且未使用主屏幕。我在我的视图中使用了@IBDesignable 来演示我希望在我的情节提要中看到的内容,如下面第一张图片所示(目前只有 link 因为我还不能嵌入成为新成员) .当我构建并 运行 我的项目以启动模拟器时,我看到一个带有苹果徽标的黑屏,然后一旦加载模拟器,我就得到一个完全空白的屏幕(如下图 2 所示)。现在我的原因觉得奇怪是因为我能够查看我希望在故事板中看到的内容,并且我可以执行以下步骤让我的应用程序显示在模拟器中,但每次都这样做真的很烦人:
1。当模拟器处于 运行ning 状态时,单击 xcode 中的 "stop button" 以结束调试器。这会将模拟器带回主屏幕。
2. 从模拟器的主屏幕,运行我的应用程序。
3. 我的简单显示现在可以在模拟器中正确显示,就像我在情节提要中看到的那样。 (这将显示在图 3 中,但我无法 post 超过 2 link 作为新手)
图片:
Storyboard view of my app
Blank screen after starting simulator
[正确显示应用程序的模拟器][3]
除了这个简单的显示之外,我还尝试添加 NSAttributed 字符串,在这样做之后,我用来让我的应用程序在模拟器中显示的烦人的技巧不再有效。但是,我还注意到,如果我在我的属性字符串中遗漏某些属性,使它显示的 "annoying trick" 仍然有效。此外,我在控制台输出中没有收到任何错误消息,唯一的输出是“(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()
}
如果您设置了断点,就会发生这样的事情。它可能会在 UI 初始化之前将您转储到调试器中,从而导致空白屏幕。当您从模拟器主屏幕启动它时,调试器未附加,因此您的断点不会停止代码。
查看 Xcode 中最左侧列的断点选项卡。如果你看到断点,它看起来像这样:
...然后点击它们并按删除键删除它们。