我跟隨斯坦福冬季2015年介紹Swift在ItunesU創建自定義視圖控制器(我使用Xcode 7)。我創建了一個自定義視圖,目前只是使用UIBezierPath實現了兩個圓圈(我的drawRect函數的代碼如下,我相信這是我的項目中有關簡單顯示的唯一代碼,我希望在模擬器中看到。自定義視圖控制器是空的,我已經刪除了視圖的加載函數)。我已將此自定義視圖控制器作爲初始視圖控制器,並且未使用主屏幕。我在我的視圖中使用了@IBDesignable來演示我期望在故事板中看到的內容,該內容顯示在下面的第一張圖片中(目前只是一個鏈接,因爲我無法嵌入,但仍然是新成員)。當我建立並運行我的項目來啓動模擬器時,我看到一個帶有蘋果標誌的黑屏,然後一旦模擬器加載,我就會看到一個完全空白的屏幕(如圖2所示)。現在我發現這個奇怪的原因是因爲我能夠查看我希望在故事板中看到的內容,並且我可以執行以下步驟來讓我的應用程序在模擬器中顯示,但每次都會很煩人:
1.模擬器運行,單擊xcode中的「停止按鈕」以結束調試器。這使模擬器回到主屏幕。
2.從模擬器的主屏幕上運行我的應用程序。
3.我的簡單顯示現在在模擬器中正確顯示,正如我在故事板中看到的那樣。 (這將在圖3中顯示,但我無法發佈多於2個鏈接是一個新手)
PICTURES:
Storyboard view of my app
Blank screen after starting simulator
[模擬器與應用程序正常顯示] [3]
Xcode模擬器顯示空白屏幕,直到退出調試器
除了這個簡單的顯示,我已經嘗試添加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()
}
你能再次檢查你的照片嗎?在這兩種情況下,我都看到了同樣的情況,這兩種情況都不是我期望看到的。 –
圖片已經更新爲正確的圖片(推測這就是爲什麼他們限制noobs的圖片,因爲他們沒有做到第一次;) – element4lifex8
這是很難找到一個問題,沒有看到完整的源代碼。如果你可以,請通過GitHub –