被Navbar淘汰的iOS背景图片

时间:2012-10-19 02:39:03

标签: iphone ios background uinavigationbar uitabbar

我有一个使用UITabBarUINavigationBar的应用。我正在创建一个包含我的背景图片的UIImageView,然后将UIImageView添加到我的self.view作为子视图。这会导致背景垂直“挤压”。背景图像直到NavBar底部才开始,然后在TabBar后面向下运行。

这是我用来添加背景的代码:

UIImageView* backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
    [backgroundView setFrame:CGRectMake(0, 0, 320, 480)];
    [self.view addSubview:backgroundView];

关于如何保持背景的实际大小的任何想法都将非常感激。

2 个答案:

答案 0 :(得分:2)

首先,对于低于iPhone / iPod 5的任何内容,您将无法使用480点高度UINavigationBar。您应该使用self.view.frame.size.height来获取实际尺寸。实际上,您应该将帧设置为视图的边界。

[backgroundView setFrame:self.view.bounds];

其次,您应该设置contentMode的{​​{1}}属性。

UIImageView

这应该可以解决你的问题。

答案 1 :(得分:0)

我不太确定你在问什么。是的,任何属于标签栏控制器或导航控制器的视图都将调整大小以适应剩余的屏幕空间,但是在考虑其他UI元素占用的空间后,您确切知道图像视图将留下多少空间:

状态栏:320 x 20(纵向),480 x 20(横向)导航栏:320 x 44(纵向),480 x 34(横向)标签栏:320 x 49(纵向),480 x 49(横向) )

基本上,您的图像视图有以下可用空间:

肖像:320 x 367 Landspace:480 x 217

设计具有这些尺寸的Default.png。老实说,将第一个屏幕与Default.png匹配的最简单方法是简单地截取iOS模拟器的截图。