[英]UIView size/position not working on iPad as on iPhone
我有一个大小宽度= 320像素高度= 40像素的UIView,我想在底部显示看起来像一个标签栏。
我使用以下代码来实现这一点,它在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
我还为页面顶部创建了另一个这样的视图,它可以正常工作:
dataView.frame=CGRectMake(
0,
0,
self.view.frame.size.width,
dataView.frame.size.height);
你有没有看到(使用断点或NSLog
)你正在进入CGRectMake
调用的值,就像一种“健全性检查”?
谢谢(你的)信息。 我的下一个想法是,在viewDidLoad
和viewWillAppear
之间,操作系统正在更改某些内容。 也许尝试将代码移动到viewWillAppear
,以确保您正在使用的帧将是将要显示的帧。 这个Stack Overflow答案以更深入的方式解释了它。
发生这种情况是因为为UIView设置了Auto Resizing
。
要修复,请将“ Auto Resizing
设置为将其绑定到左上角。 这样,无论何时更改帧,它都相对于左上角像素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.