我在我的模拟器中出现了这个:
我不确定为什么背景图像不会一直延伸到屏幕上。
一种可能性是,出于某种原因,默认情况下,模拟器从水平视图开始,我必须将其向左移动以获得我发布的图像。
也许修复是将默认设置为纵向视图?我该怎么设置?我实际上不确定为什么突然有一天我开始使用水平而不是纵向视图作为默认值。
谢谢, 亚历
编辑:
以下是我设置背景图片的方法:
- (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];
}
}
答案 0 :(得分:2)
不,这不是原因,因为您正确获得状态栏。您是否使用InterfaceBuilder或以编程方式添加UIImageView?
如果您使用IB,您如何设置背景图像?
如果以编程方式添加UIImageView
,您在框架中设置的是什么尺寸?或者你可能正在使用模式设置背景颜色?
也许你的XIB有水平方向?
请使用Attributes Inspector或某些代码从XIB发布屏幕截图。
<强> 修改 强>:
首先,您没有正确使用@2x
。这是由Xcode图片标签管理的iPhone常规或iPhone Retina。
这就是你有错误的原因:
imgView.frame = self.view.bounds;
界限与框架不同。尝试使用:
imgView.frame = self.view.frame;
原因如下:Difference between view's frame and view's bound + iPhone
框架是超视图中视图的位置,使用superview 坐标系。
边界是它自己坐标系中的位置和大小。
这是一个很好的解释。因此,当您使用边界时,您可能会混淆宽度和高度。在调试器中尝试NSLog
或po
,您会看到。