【问题标题】:iOS 5.1 with Xcode 4.3.1: [UIColor colorWithPatternImage:] strange behavior only on device带有 Xcode 4.3.1 的 iOS 5.1:[UIColor colorWithPatternImage:] 奇怪的行为仅在设备上
【发布时间】:2012-03-26 17:10:45
【问题描述】:

当我在 Xcode 4.3.1 和 iOS 5.1 中编译我的应用程序时,我注意到只有在实际设备上才有背景纹理的奇怪行为。如下截图所示,纹理图块之间有 1px 的间隙。

我的纹理是 150x150 和 300x300 2x。

到目前为止,我已经测试了相同的构建:

  • 模拟器 iPhone/iPad 5.0/5.1:没有错误
  • 运行 5.0.1 的 iPhone/iPad:没有错误
  • 运行 5.1 的 iPhone/iPad:越野车

【问题讨论】:

  • 线条是否每隔 150 像素出现一次?也有竖线吗?
  • 只有水平线而不是垂直线,是的,它在视网膜上每 300px 出现一次
  • 我可以确认我也遇到了这个错误,但我不确定是不是因为 iOS 5.1
  • 我目前的解决方法是将图案图像设为 960 像素。所以我只是平铺了图案以适应 480x480。目前看来还好。
  • 您是否仔细检查了资源以确保它们不包含杂散像素,或者尝试平铺不同的资源?

标签: iphone ios-simulator uicolor xcode4.3 ios5.1


【解决方案1】:

以防万一其他人遇到此问题并使用 pngoptimizer,请尝试不优化的新 png。

我遇到了同样的问题,并花了最后 4 个小时试图解决它。 最后我意识到它是来自 pngoptimizer 工具的 png 文件,它在 iOS 5.1 之前总是可以工作,但是随着更新,相同的 png 文件在底部产生了这条细线。奇怪的是,这只发生在设备上而不是模拟器上,这会欺骗你很多,因为你认为它不可能是图形。事实上确实如此。

【讨论】:

  • 我尝试在 Photoshop 优化和不优化的情况下保存 PNG,但两者都不起作用。
【解决方案2】:

自 5.1 以来,我也遇到了同样的问题。我通过对 Photoshop 中的图像执行以下操作来解决它。您可能可以在其他工具中执行相同的操作。

  1. 加载文件,全选,复制到剪贴板

  2. 在 Photoshop 中创建一个具有相同尺寸、RGB 和 8 位深度、72 像素/英寸分辨率、白色背景的新文件。

  3. 将您在步骤 1 中复制的图像粘贴到此图像中

  4. 保存文件并使用此文件。

执行此操作后,文件在设备上正确显示,我不必求助于创建显示大小的图像。

【讨论】:

  • 所以你在这之后就不优化 PNG 了吗?使用 Photoshop 简单地“保存”会创建最小 49kb 的文件大小,我不希望这样。
  • also 对我有用:使用 Pixelmator 我将图像导出为 PNG,仅此而已:)
  • 通过 Pixelmator 确认修复。没有任何特殊选项的保存就可以了。优化保存的图像将再次导致问题。
  • 谢谢,这确实是一个错误,但至少我现在已经修复了它!
  • 我在 5.1 中也遇到了这个问题,并提交了 rdar://11069678 。它似乎是 any PNG8 或灰度 PNG 文件中的最后一行像素(基本上,任何无法通过 Apple 的 pngcrush 工具进行预乘优化的 PNG 文件)
【解决方案3】:

我的解决方法: 在构建设置中将“压缩 PNG 文件”设置为“否”。在我的情况下,应用程序包的大小甚至比打开压缩时还要小。我自己做了图像优化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-17
    • 2012-03-25
    • 2012-09-23
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 2015-11-21
    • 2012-04-23
    相关资源
    最近更新 更多