在没有CATiledLayer的情况下在iOS上呈现和缩放大图像

我想介绍一下,并允许用户以与照片应用程序相同的方式放大iPhone和iPad上的大图像。

我意识到CATiledLayer是这个类的goto类,但它使用的审美不适用于我的应用程序。 它一个接一个地渲染拼贴,而Photos应用同时呈现整个屏幕(并且在缩放期间和之后显示像素化版本,直到应用可以追上)。

我当然可以在每次缩放后实现一个在后台渲染图像的视图。 但是,一旦源图像变大,这将使应用程序崩溃。 所以平铺是有吸引力的,我只是希望不更新屏幕,直到所有的瓷砖准备好(并在此期间显示较低分辨率的图像)。

有没有人试图实现这样的事情? 有任何想法吗?

我猜你可以有两个视图:一个ImageView的低分辨率图像,以及一个带有CaTiledLayer的自定义视图,透明背景和隐藏的开始。

因此,缩放时(您需要将缩放应用于两个视图),并且需要额外的分辨率,只显示catiledlayered视图,因此它将加载图块,同时在未加载的图块上显示低分辨率(和像素)。

Apple的PhotoScroller和ScrollViewSuite示例展示了如何做到这一点以及更多。

还有一个2010年的WWDCvideo标题为“用滚动视图devise应用程序”,解释PhotoScroller。