self.view.frame.width在自定义键盘视图控制器中返回0

时间:2014-08-15 00:27:06

标签: ios swift

当我尝试使用以下代码获取帧宽时,它只返回0:

var deviceWidth = self.view.frame.width

我假设这与UIInputViewController类的限制有关,这是所有自定义键盘的超类

3 个答案:

答案 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方法进行绘制,现在可以获得实际大小。这是我解决这个问题的方法。