我正在为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