UIView大小/位置不适用于iPhone上的iPad

我有一个UIView的大小宽度= 320px高度= 40px,我想显示在底部看起来像一个标签栏。

我使用下面的代码来实现这一点,它在iPhone上工作正常。 但是当我尝试iPad模拟器时,视图不会出现在屏幕上的任何地方。

buttonsView.frame=CGRectMake( 0, self.view.frame.size.height - buttonsView.frame.size.height, self.view.frame.size.width, buttonsView.frame.size.height ); 

这将视图延伸到屏幕的宽度,但保持原来的高度。

我怎样才能让这个秀在我的iPad上呢?

[UPDATE]

这发生在我的viewDidLoad

我现在有这个NSLog:

 NSLog(@"buttonsView Width: \t%g\t%g\tHeight:\t%g\t%g",self.view.frame.size.width, buttonsView.frame.size.width, self.view.frame.size.height, buttonsView.frame.size.height); 

输出:
苹果手机:

buttonsView宽度:320 320高度:460 40

iPad的:

buttonsView宽度:768 768高度:1004 40

我也创build了另一个像这样的页面顶部工作正常的视图:

 dataView.frame=CGRectMake( 0, 0, self.view.frame.size.width, dataView.frame.size.height); 

你看过(使用断点或NSLog )在你正在进入CGRectMake调用的价值,只是作为一种“健全检查”?


谢谢(你的)信息。 我的下一个想法是, viewDidLoadviewWillAppear之间的东西正在被操作系统改变。 也许尝试移动代码viewWillAppear ,以保证你正在使用的框架将是将被显示的框架。 这个堆栈溢出的答案更深入地解释了它。

发生这种情况是因为Auto Resizing被设置为UIView的。

要解决此问题,请将Auto Resizing设置为将其绑定到左上angular。 这样,每当你改变框架,它是相对于左上angular的像素。