ver*_*age 7 background-image uitabbar ios iphone-5
希望一个小问题的长标题.
我有一个带有自定义背景图像的UINavigationBar.我的应用程序将支持横向和纵向.景观在视网膜3英寸和非视网膜屏幕的模拟器中运行良好.但是,在视网膜4英寸屏幕上,背景图像在横向模式下显示两倍大小.
这是我自定义导航控制器的init-method中的相关代码片段:
[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar-bg.png"] forBarMetrics:UIBarMetricsDefault];
if (IS_IPHONE_5)
{
[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar-bg-landscape-iphone5.png"] forBarMetrics:UIBarMetricsLandscapePhone];
}
else
{
[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar-bg-landscape.png"] forBarMetrics:UIBarMetricsLandscapePhone];
}
Run Code Online (Sandbox Code Playgroud)
IS_IPHONE_5是一个宏定义为:
#define WIDTH_IPHONE_5 568
#define IS_IPHONE_5 ([[UIScreen mainScreen] bounds].size.height == WIDTH_IPHONE_5)
Run Code Online (Sandbox Code Playgroud)
这里有2个屏幕碎片,可以更清楚地解释事情.当应用程序以纵向模式打开时,一切都很好:

更改为横向模式时全部爆炸:

横向版本背景图像的图像大小(以像素为单位,宽度x高度)为:
或者它可能只是一个模拟器问题?(我现在没有真正的iPhone 5)
我相信您navbar-bg-landscape-iphone5.png应该被调用navbar-bg-landscape-iphone5@2x.png,并且您应该继续像navbar-bg-landscape-iphone5.png在代码中那样引用它.由于iPhone 5具有视网膜显示屏,iOS将查找该@2x版本并使用它.如果找不到,它将使用您提到的版本,然后将其放大2倍.要避免iOS扩展2倍,请为其提供@2x版本.
| 归档时间: |
|
| 查看次数: |
3567 次 |
| 最近记录: |