【问题标题】:UIImage not drawing on screenUIImage 没有在屏幕上绘制
【发布时间】:2012-07-03 06:02:59
【问题描述】:

我运行 Xcode 4.3 和 Mac OSX 10.7。

我已经在一个应用程序上工作了几个星期,但我遇到了一个特殊的问题:-

  1. 我的应用程序的所有资产都位于根目录下的文件夹中。
  2. 我有一些 shell 脚本,这些脚本在编译过程中获取这些资产并将它们放入一个包中。
  3. 我已经编写了自己的方法(类似于 imageNamed: )来处理图像缓存,并且普遍使用这种方法来制作所有 UIImage。

问题是一些图像没有反映在设备上的应用程序中,而所有图像都出现在模拟器上。

我保证

  1. 图像名称与包中的名称正确匹配
  2. 将图像复制到包中(显示产品应用程序中的包内容)
  3. 此文件的权限也授予(文件上的 chmod 777)

有人知道可能出了什么问题吗?

更新:

我清理了派生数据并从模拟器中卸载了应用程序并启动它,现在相同的图像也不会出现在模拟器上,而相同的逻辑和代码适用于所有其他图像。

我面临与设备相同的问题。

此外,当我进入具有我想在屏幕上绘制的图像的屏幕时,我收到以下错误:-

 <Error>: CGContextSaveGState: invalid context 0x0

 <Error>: CGContextSetBlendMode: invalid context 0x0

 <Error>: CGContextSetAlpha: invalid context 0x0

 <Error>: CGContextTranslateCTM: invalid context 0x0

 <Error>: CGContextScaleCTM: invalid context 0x0

 <Error>: CGContextDrawImage: invalid context 0x0

 <Error>: CGContextRestoreGState: invalid context 0x0

【问题讨论】:

标签: ios xcode shell uiimage


【解决方案1】:

您可以检查图像的名称。当您在设备上运行构建但在模拟器中运行时,它是区分大小写的。

【讨论】:

  • 我确实确保名称匹配正确。所以,不应该有区分大小写的问题!不过,谢谢你的信息!
【解决方案2】:

您还必须指定图像的扩展名才能使其在设备上运行。

[UIImage imageNamed:@"test.png"];

【讨论】:

  • 是的,我也这样做了。我已经对所有图像进行了统一处理,但大约有 3 张图像没有显示在设备上,而其余的则显示了!
  • 再次检查扩展名是否相同。 @"test.PNG" 和 @"test.png" 是有区别的。
  • 如果您从文件中获取图像,您应该使用 [UIImage imageWithContentsOfFile:@"test.png"];不是 [UIImage imageNamed:];这是完全错误的。
猜你喜欢
  • 1970-01-01
  • 2012-04-07
  • 2017-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多