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
调用的价值,只是作为一种“健全检查”?
谢谢(你的)信息。 我的下一个想法是, viewDidLoad
和viewWillAppear
之间的东西正在被操作系统改变。 也许尝试移动代码viewWillAppear
,以保证你正在使用的框架将是将被显示的框架。 这个堆栈溢出的答案更深入地解释了它。
发生这种情况是因为Auto Resizing
被设置为UIView的。
要解决此问题,请将Auto Resizing
设置为将其绑定到左上angular。 这样,每当你改变框架,它是相对于左上angular的像素。