当我尝试使用以下代码获取帧宽时,它只返回0:
var deviceWidth = self.view.frame.width
我假设这与UIInputViewController类的限制有关,这是所有自定义键盘的超类
答案 0 :(得分:3)
我发现您可以使用以下代码:
UIScreen.mainScreen().bounds.width
或者简单地说:
view.bounds.width
答案 1 :(得分:1)
这是正确的解决方案
-(void)viewDidLayoutSubviews{
CGRect keyboardRect = self.inputView.bounds;
}
答案 2 :(得分:0)
我不知道为什么,但是在你将任何视图设置为子视图之前它会返回0。所以我用这样的方式解决了这个问题:在viewDidLoad
方法中,我想要绘制所需的所有必要的东西以及一个额外的视图:
//initialize all you need for drawing
var extraView = UIView()
self.view.addSubview(extraView)
//now you can get real size
现在,您可以开始使用viewDidAppear
方法进行绘制,现在可以获得实际大小。这是我解决这个问题的方法。