0

我的模拟器中出现了这个:

在此处输入图像描述

而且我不确定为什么背景图像不会一直延伸到屏幕下方。

一种可能性是,由于某种原因,默认情况下,模拟器从水平视图开始,我必须将其向左移动才能看到我发布的图像。

也许解决方法是将默认设置为纵向视图?我该如何设置?我实际上不确定为什么突然有一天我开始默认使用水平视图而不是纵向视图。

谢谢,亚历克斯

编辑:

这是我设置背景图像的方法:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
    {
        //load iphone image
        UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"building"]];
        imgView.frame = self.view.bounds; // to set the frame to your view's size
        [self.view addSubview:imgView];
        [self.view sendSubviewToBack:imgView];
    }
    else
    {
        //load ipad image
        UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"building@2x"]];
        imgView.frame = self.view.bounds; // to set the frame to your view's size
        [self.view addSubview:imgView];
        [self.view sendSubviewToBack:imgView];
    }
}
4

1 回答 1

2

不,这不是原因,因为您正确获得了状态栏。您是使用 InterfaceBuilder 还是以编程方式添加 UIImageView?

如果您使用的是 IB,您如何设置背景图像?如果您UIImageView以编程方式添加您在框架中设置的大小?或者,也许您正在使用模式来设置背景颜色?

也许你的 XIB 有水平方向?

请使用属性检查器或一些代码发布来自 XIB 的屏幕截图。

编辑

首先,你没有@2x正确使用。这是由 Xcode 图像标签管理的 iPhone 常规或 iPhone Retina。

这就是为什么你有一个错误:

imgView.frame = self.view.bounds;

边界与框架不同。尝试使用:

imgView.frame = self.view.frame;

这就是为什么:视图的框架和视图的绑定+ iPhone之间的区别

框架是视图在其父视图中的位置,使用父视图的坐标系。

边界是它在自己的坐标系中的位置和大小。

这是一个很好的解释。因此,当您使用边界时,您可能会混淆宽度和高度。尝试NSLog它或po在调试器中,你会看到。

于 2012-12-14T18:03:49.737 回答