【发布时间】:2015-10-28 00:22:12
【问题描述】:
我正在关注 2015 年斯坦福冬季在 ItunesU 上对 Swift 的介绍,以创建自定义视图控制器(我使用的是 Xcode 7)。我还创建了一个自定义视图,目前仅使用 UIBezierPath 实现了两个圆圈(我的 drawRect 函数代码如下,我相信这是我的项目中与我希望在模拟器中看到的简单显示有关的唯一代码。我的自定义视图控制器是空的,我已经删除了视图加载功能)。我已将此自定义视图控制器设为初始视图控制器,并且没有使用主屏幕。在我的观点中,我使用@IBDesignable 来演示我希望在我的故事板中看到的内容,如下面的第一张图片所示(目前只是一个链接,因为我还不能嵌入成为新成员)。当我构建并运行我的项目以启动模拟器时,我看到一个带有苹果标志的黑屏,然后一旦模拟器加载,我就会看到一个完全空白的屏幕(如下图 2 所示。)现在我觉得这很奇怪的原因是因为我能够在我的故事板中查看我期望看到的内容,并且我可以执行以下步骤来让我的应用程序在模拟器中显示,但是每次都这样做真的很烦人:
1。在模拟器运行时,点击xcode中的“停止按钮”结束调试器。这会将模拟器带回主屏幕。
2. 从模拟器的主屏幕,运行我的应用程序。
3. 我的简单显示现在在模拟器中正确显示,正如我在故事板中看到的那样。 (这将显示在图 3 中,但作为新手,我无法发布超过 2 个链接)
图片:
Storyboard view of my app
Blank screen after starting simulator
[应用程序正确显示的模拟器][3]
除了这个简单的显示之外,我还尝试添加 NSAttributed 字符串,在这样做之后,我用来让我的应用程序在模拟器中显示的烦人技巧不再起作用。但是,我还注意到,如果我在属性字符串上遗漏了某些属性,让它显示的“烦人的技巧”仍然有效。此外,我在控制台输出中没有收到任何错误消息,唯一的输出是“(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()
}
【问题讨论】:
-
你能再检查一下你的照片吗?我在这两种情况下看到的都是同一个,这不是我在任何一种情况下都希望看到的。
-
图片已更新为正确的图片(猜猜这就是为什么他们限制新手使用图片的原因,因为他们第一次没有做对;)
-
不看完整源代码很难找到问题。如果可以请通过 GitHub 上传
-
我不想包含我的项目,因为我有过多的多行 cmets 提醒自己使用 swift 语法,所以我认为包含它太混乱了。但是断点答案解决了我的问题!
标签: ios iphone xcode swift ios-simulator