0

我的以下代码在 iOS 6.0 和 iOS 7.0 上运行良好,我们在标题 (UIView) 上设置了徽标 (UIImageView)。

升级到 SDK iOS7.1 后。以下停止工作,我完全不知道为什么。

// Header
header = [[UIView alloc] initWithFrame: CGRectMake(0, baseYPos, self.view.viewSize.width, 50)];
header.backgroundColor = [UIColor blackColor];
[self.view addSubview: header];

// LOGO
UIImageView *logo = [[UIImageView alloc] initWithFrame: CGRectMake(0, 0, header.viewSize.width, header.viewSize.height - 20)];
logo.image = [UIImage imageNamed: @"logo.png"];
logo.alpha = 1;
logo.contentMode = UIViewContentModeScaleAspectFit;
logo.center = ccp(header.center.x, header.center.y - baseYPos);
[header addSubview: logo];

使用revealapp.com。在 iOS7.0 中查看应用程序时,我将 UIImageView 视为标题上方的浮动徽标(Reveal 中的 3D 视图)。在iOS7.1中查看同一个app,UIImageView基本上是一个没有图片的空白透明框。

我尝试了以下方法,但均无济于事:

  • 用initWithImage声明UIImageView,稍后设置frame
  • 强制“logo”上的不透明为 FALSE,标题为 TRUE
  • 我没有将“logo”作为子视图添加到“标题”,而是将其添加到两者的父视图中,将其作为子视图插入到标题上方

这些都不起作用。看起来苹果:

  • 改变了我们在 UIImageView 中设置图像的方式

或者

  • 改变了我们将 UIImageView 添加到 UIView 父级的方式

或者

  • 我完全错误地编码了这个

我找不到任何关于 7.1 的发行说明表明这是一个 SDK 更改——这也导致了糟糕的 SDK 设计—— “请不要想孩子们!”

这个问题让我很困惑,所以任何帮助都会得到永恒的感激(如免费啤酒类:D)。

谢谢大家!

4

1 回答 1

0

将“徽标”图像添加到资产目录 (AC) 解决了该问题。

在此之前,除了 launchimage 和 appCode,我们的镜像都不是 AC 的一部分。无论出于何种原因,iOS 7.1 都无法识别“徽标”图像以及其他图像。

所以我将我们所有的图像导入到 AC 中,以防将来发生任何 SDK 更改 - 不认为 AC 是强制性的,认为它只是 XCode 5 的一个功能。

感谢@Alexander Kostiev 担任 AC 领导。希望我能给你更多的积分!

这篇博文也有帮助: https ://www.iphonelife.com/blog/31369/unleash-your-inner-app-developer-managing-images-xcode-5-asset-catalogs

于 2014-03-16T14:31:33.437 回答