我跟随斯坦福冬季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()
}