我的观点似乎没有调整高度,尽管它应该?

时间:2013-03-03 08:36:18

标签: ios uiviewcontroller

视图设置为“Retina 3.5全屏”

底部是一个按钮,设置为跟踪视图的底部(外部顶部,外部左侧和外部底部支柱组)。

此代码位于viewDidLoad

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    CGRect viewRect = [self.view bounds];
    CGFloat height = viewRect.size.height;
    NSLog(@"Screen is %g pixels high", height);
}

当我在iPhone 3.5的模拟器中运行它时,我得到了480像素的高度,按钮保持原样。

当我在4“模拟器中运行它时,我会期望更高的视图,并且按钮移动到与底部齐平。但它没有。但是视图明显扩展以填充模拟器的整个屏幕尽管代码声称视图仍然只有480像素高。

我可以查看什么?我宁愿不必编写代码来重新定位按钮......

2 个答案:

答案 0 :(得分:1)

在XCode中的实用程序中的尺寸检查器选项卡中,您应该会在“查看”部分下看到自动调整选项。
确保您的UIView配置为在所有方向上扩展应该在使用视网膜4屏幕时看到它的高度增加:

扩展UIView

Expanding UIView

其次,自动调整选项允许您设置UIView锚定到哪一侧(灰色框外的红线)。通过将UIButton锚定到底部而不是顶部,它应该在调整大小期间保持与superview底部的距离:

UIView锚定到底部

UIView anchored to bottom

答案 1 :(得分:-2)

对于iPhone 5和之前的型号,

视图框保持不变。

取而代之的是 UIScreen界限改变

您可以通过

查看iPhone 5
if([UIScreen mainScreen] bounds].size.height == 480)
{
    // iPhone Classic
}
else
{
    // iPhone 5
}