繁体   English   中英

UIView尺寸/位置在iPad上不能像在iPhone上那样工作

[英]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调用的值,就像一种“健全性检查”?


谢谢(你的)信息。 我的下一个想法是,在viewDidLoadviewWillAppear之间,操作系统正在更改某些内容。 也许尝试将代码移动到viewWillAppear ,以确保您正在使用的帧将是将要显示的帧。 这个Stack Overflow答案以更深入的方式解释了它。

发生这种情况是因为为UIView设置了Auto Resizing

要修复,请将“ Auto Resizing设置为将其绑定到左上角。 这样,无论何时更改帧,它都相对于左上角像素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM