-2

我有一个视图网格。每个视图都包含一个图像和一些轻量级元素。

每个这样的视图都可能变成全屏,反之亦然。所以我曾经CATransform3D最小化/最大化项目和恒定的“全屏”帧(我不能简单地减少/增加帧/边界,因为变换包括额外的子变换而不仅仅是缩放)。

但现在我遇到了另一个问题。每个视图的框架总是很大,所以其中的图像也必须很大,这会导致内存问题。我试图以像素为单位减小图像大小,但整个图像(通常)相对于其容器减小了。

如何解决这样的问题?在最小化后我不需要最大尺寸的图像(即使它降低了它的质量)。

已编辑

特别是对于那些想要不费吹灰之力地获得额外选票并试图重述问题而不是回答并建议以像素为单位减小图像大小的被冒犯的人 - 再次阅读问题,因为它已经指定,这是错误的结果:

http://i62.tinypic.com/mr67ue.jpg

好的,图像大小减小了,但是如何处理它的容器呢?

4

1 回答 1

0

我发现的最合适的解决方案如下。

未优化的视图是屏幕大小,包括比例在内的所有其他变换都通过CATransform3D.

为了优化,我手动减少了UIView、其所有子视图甚至图像的框架(因为在我的情况下,它的放置模式UIImageView不符合任何标准)。我仍然使用相同的复杂CATransform3D但没有缩放变换。

在这两种情况下,初始锚点(视图中心)都是屏幕的中心。

为了优化图像,我立即为当前视图减小它的大小,并为其他视图使用缓存的。如果没有缓存图像,我会尝试重新创建它。

于 2015-07-30T07:51:21.677 回答