我正在爲iOS 8編寫自定義鍵盤。我的主UIView在我的viewDidLoad
方法中返回{{0, 0}, {0, 0}}
。我試圖用view.frame和bounds接收CGRect,但都返回0.但是,如果我使用這些相同的方法來檢索我的視圖在viewDidAppear
方法中的座標,它們將返回正常:{{0, 0}, {320, 216}}
。這裏的問題是viewDidAppear在didLoad之後運行,所以我無法從didAppear檢索大小並在didLoad中使用它。這是我的問題:iOS 8自定義鍵盤self.view.frame返回0
爲什麼self.view的幀在viewDidLoad
返回0?它的大小不應該在這裏設置?這(viewDidLoad)是我應該做的大部分啓動和UI設置的地方,對嗎?我在Xcode中有經驗。
我在swift編程,雖然這應該沒關係(?)我認爲這值得注意。在Obj-C中的答案很好。
編輯:我創建了一個全新的Xcode項目和目標下面的類並收到同樣的錯誤:
import UIKit
class KeyboardViewController: UIInputViewController {
override func viewDidLoad() {
super.viewDidLoad()
println(self.view.frame) // returns (0.0,0.0,0.0,0.0)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func viewDidAppear(animated: Bool) {
println(self.view.frame) // returns (0.0,0.0,320.0,216.0)
}
}
我用模擬器和物理設備也從6到4S測試。沒有什麼似乎有所作爲。
我在這裏遇到麻煩,那個println無法在控制檯日誌中打印任何東西! – TomSawyer 2014-10-20 15:35:17