iOS7 上 NavBar 背景图像的奇怪外观

Posted

技术标签:

【中文标题】iOS7 上 NavBar 背景图像的奇怪外观【英文标题】:Strange appearance of NavBar background image on iOS7 【发布时间】:2014-03-23 11:38:07 【问题描述】:

以下设置导航栏bkg图像的代码在ios6上运行良好,但在iOS7上出现奇怪的结果。

UIImage *navBackgroundImage = [UIImage imageNamed:@"nav-bkg.png"];
[[UINavigationBar appearance] setBackgroundImage:navBackgroundImage forBarMetrics:UIBarMetricsDefault];

这是 iOS 6 上的结果。

如您所见,iOS 7 出了点问题。

更新 调整为 64x64 像素

【问题讨论】:

在 iOS 7 中尝试320 × 64 图像 【参考方案1】:

猜测是因为导航栏在 iOS7 上的 Y 轴上更大(因为它包括状态栏)并且您的图像的大小正好适合 iOS 6 导航栏。为两个版本创建足够大的图像。

可以看到在ios7上,图片也是在状态栏的后面,图片底部打乱的部分正好是状态栏的高度。

【讨论】:

这不是单个图像,而是平铺的 50x50 png...我猜导航栏高度是 44,所以它适合那里? 好的。好吧,导航栏是 44,但正如您所见,包括状态栏。那么也许 44+20 像素的图像会起作用?或者你也可以垂直平铺? 你可以看到 64x64px 的结果。 似乎没有平铺...? 是的,在这种情况下只是拉伸。

以上是关于iOS7 上 NavBar 背景图像的奇怪外观的主要内容,如果未能解决你的问题,请参考以下文章

使用ios7修复了背景图像

在 ios 7 中保持 ios 6 披露指示器的外观

iOS7 uitablecell白色背景[关闭]

分组 UITableView 的背景颜色在 iOS7 中不会透明

iOS7 中选定 UITableViewCell 的奇怪行为

在 iOS7 中更改单个视图的导航栏背景