【问题标题】:iOS 7.1 (only) invisible image in UIImageViewiOS 7.1(仅)UIImageView 中的不可见图像
【发布时间】:2014-03-16 13:30:26
【问题描述】:

以下代码在 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”上的 opaque 强制设为 FALSE,将 header 设为 TRUE
  • 我没有将“logo”作为子视图添加到“标题”,而是将其添加到两者的父视图中,并将其作为子视图插入到标题上方

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

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

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

  • 我的编码方式完全错误

我找不到任何关于 7.1 的发行说明表明这是一个 SDK 更改 - 它也会导致糟糕的 SDK 设计 - "won't somebody please think of the children!"

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

谢谢大家!

【问题讨论】:

  • 嗨!如果[UIImage imageNamed:@"logo.png"] 不是nil,您是否已签入调试器?如果您使用资产目录,可能需要删除图像名称中的扩展名(但这更像是一种假设)
  • 我还发现如果从项目文件夹将图像导入资产目录,则无需删除图像扩展名,因为创建的 .imageset 文件夹中的 contents.json 将具有文件名。换句话说,您可以灵活地仅使用名称(徽标)或带有/不带 @2x(logo.png 或 logo@2x.png)的全名来引用图像。

标签: objective-c uiview uiimageview ios7.1


【解决方案1】:

将“徽标”图像添加到资产目录 (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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 2019-07-02
    • 2018-08-30
    • 1970-01-01
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多