【问题标题】:Phase of patterned image is incorrect on iOS 3.xiOS 3.x 上图案图像的相位不正确
【发布时间】:2012-02-16 20:56:40
【问题描述】:

我正在使用带图案的图像显示我的视图背景。

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"main_bg_tile.png"]];

平铺图像大小为 1x512 像素。 512px,因为根据 Apple 文档,由于性能原因,平铺图像的大小应该是 2 的幂。在我的分析之后,我发现如果我使用的图像不是 2 的幂,iOS 会为该图像创建一个后备存储(比使用 2 的幂图像消耗更多的内存)。

在 iOS 4 和 5 上一切正常,但在 iOS 3 上却不行。

在 iOS 3 上,图案图像的相位不正确。似乎它从左下角开始绘制图像,而不是 Apple 文档中所述的左上角。

默认情况下,返回颜色的相位为 0,这会导致图像的左上角与绘图原点对齐。要更改相位,请将颜色设为当前颜色,然后使用 CGContextSetPatternPhase 函数更改相位。

我找到了一个解决方法: 使用平铺图像的实际大小而不是 2 的幂。但是这样我就失去了大小为 2 的图像的内存优势。

有人注意到这种行为吗?如何在 iOS 3 上正确解决此问题?

【问题讨论】:

    标签: iphone ios image


    【解决方案1】:

    我使用了图案中的背景图像并加载了 pvr 图像,这样您就可以拥有一个小图像,但 IOS3 您需要获得一个 pvr 加载器。 PowerVR SDK 但它的 c++。

    【讨论】:

      猜你喜欢
      • 2018-01-09
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 2022-06-29
      • 2017-07-23
      • 2021-10-16
      • 1970-01-01
      • 2012-08-16
      相关资源
      最近更新 更多