2009-09-13 54 views
0

我正在为iPhone编写纸牌游戏,而且我不确定显示卡片的最佳策略。我有一个基本的原型,创建一个UIImageView,可以用虚拟图像拖动每张卡片。我想使用一个包含所有卡片的面的大UIImage,然后让每个可拖动的UIImageView显示该图像的一部分。我必须误解setBounds是什么 - 我认为控制了底层图像的哪一部分被显示。所以,有两个问题:iPhone应用程序中的图像策略

  1. 这是正确的做法吗?
  2. 如何仅显示图像的一部分?

回答

1

根据您的决议,这可能不是最好的方法。

Apple

应避免创建的UIImage 对象的大小大于1024×1024 的。除了这种图像消耗的大量内存 之外,当将图像用作OpenGL ES中的纹理时使用 ,或者在将图像绘制到视图或 层时,您可能会遇到问题。如果您正在执行基于代码的 操作(如将大于1024 x 1024像素的 图像调整为由位图支持的 图形上下文),则此大小限制不适用于 。实际上,您可能需要将 (或将其分成几个较小的 图像)以这种方式调整图像大小,以便将其绘制到您的视图中的其中一个 。

现在,你是在谈论分解成若干小片段,但考虑的UIImage的缓存,我不知道该怎么内存每次访问该图像并复制子矩形出来的时候发生的。我认为我要采取的方法是制作一组图像,而不是一个大的图像。