ios7.1(仅限)UIImageView中的不可见图像



我有以下代码在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作为标题上方的浮动徽标(3D视图)。在iOS7.1中查看同一个应用程序,UIImageView基本上是一个空白的透明框,没有图像。

我试了以下方法,都没有效果:

  • 用initWithImage声明UIImageView,然后设置帧
  • 强制'logo'不透明为FALSE,标题为TRUE
  • 不是将'logo'作为子视图添加到'header'中,而是将其添加到两者的父视图中,将其作为子视图插入标题

这些都不起作用。看起来好像Apple:

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

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

  • 我的编码方式完全错了

我还没有找到任何关于7.1的发布说明来表明这是一个SDK更改-它也导致了糟糕的SDK设计-"谁能不能想想孩子们!"

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

谢谢!

在资产目录(AC)中添加'logo'图像解决了这个问题。

在此之前,我们的图像都不是AC的一部分,除了launchimage和appCode。不管出于什么原因,iOS 7.1无法识别"logo"图像。

所以我把我们所有的图像导入到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

最新更新