我从 Apple 的 PhotoScroller 示例代码中提取了一些代码以使用CATiledLayer
. 我有一张从互联网上加载的 8000x7000px 的图像,在瓷砖中。
这是我的应用程序中的一种地图功能。我还有两个几乎相同的图像,具有不同的叠加层(尝试仅添加叠加层而没有运气)。
我必须UISegmentedControl
在三个选项之间切换,并且我希望 imageView 从所选图像中加载图像。因此,如果用户放大其中一个图像并选择另一个选项,则比例和坐标保持不变,并且 imageView 将所选图像加载到必要的平铺点中。
我已经部分管理了这一点。或者,我实际上已经做到了这一点,但是当我选择另一个选项时,调用该函数时整个屏幕变黑[imageView removeFromSuperview];
。在几秒钟内变黑(取决于互联网速度)后,它会显示正确的瓷砖。
如果可能,我希望图层“淡入”到下一层。您可能知道,在使用 时CATiledLayer
,第一层是低分辨率的整个图像,但在放大时,必要的图块“淡入”到具有较小图块的下一层。
我基本上需要给出(TilingView*)imageView
一个“重新加载”命令,并希望它在最后一张图像上“淡出”。
我试图注释掉[imageView removeFromSuperview];
,这实际上让我接近了我想要的。当我放大并选择另一个选项时,新图像实际上淡化了旧图像,但是,当我缩小时,旧图像明显停留在背景中(在新图像后面),没有任何反应。稍后我需要将其从 superView 中删除,但我无法再访问它,因为新图像已取代了 imageView 的位置。我知道人们可能想在这里查看代码,但我真的不知道要显示什么代码。而且记录得CATiledLayer
太差了,我真的很难理解发生了什么。