【发布时间】:2014-03-20 10:46:46
【问题描述】:
我认为现有项目和 iOS7.1 存在一个有趣的问题。我的代码正常工作和执行;自从在我的设备上更新 XCode 和我的 iOS 后,我遇到了一个问题,在该项目的导航栏中使用的透明背景图像现在被渲染了两次,一次是正确的大小,然后再次被放大和模糊。该代码仅通过应用程序委托中的[UINavigationBar appearance] api 添加图像。为了检查这不是我的代码的特定错误,我使用主详细信息默认值创建了一个默认 xcode 项目,将其设置为仅 iPhone,添加了一些新创建的图像并使用应用程序委托中的相同调用进行设置。这个项目有同样的问题,在 github 上:
UINavigationBarBug github source
这是 imo 的相关代码块:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"TLS.png"]
forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBarTintColor:RGB(233, 155, 20)];
[[UINavigationBar appearance] setTintColor:RGB(245, 245, 245)];
return YES;
}
问题截图:
看看我在这里所做的过渡文档应该没问题,44 点高的导航栏应该水平而不是垂直缩放。我也很确定这个问题在更新之前从未发生过(在将代码上传到苹果进行审查之前,内部 QA 会发现它)。
有两件事可以解决它:
1) 使用非透明图像,如果仍然存在问题,则第二次加载“正确”图像,并且由于缺乏透明度覆盖了错误渲染的图像。
2) 改用 66 点高的导航栏(在顶部透明部分为 TLS-ios7 的项目中可用),更改应用程序委托中的代码以使用它来解决问题。
谁能告诉我这里发生了什么?这是一个错误,是我的错吗,是否有一些文档部分告诉我为什么会这样?
谢谢!
** 更新:我最近发现一个 iPad 还在运行 iOS 7.0,没有出现这个问题。 **
【问题讨论】:
-
我只是想问一下,但有没有可能这只是显示在透明图像后面的导航栏的标题文本?
-
没有设置标题,但是是一个足够公平的问题。
-
@Diziet 有什么更新吗?我遇到了同样的问题
-
@Diziet 你有什么解决办法吗?我在 iPad 非视网膜设备中面临同样的问题。在视网膜设备上它工作正常。
-
我已使用非透明导航栏图像重新提交应用程序,并向 Apple 提交了错误。
标签: ios uinavigationbar uiappearance ios7.1