实现图像滑块的最佳方法

时间:2013-11-28 19:19:24

标签: ios iphone objective-c uiswipegesturerecognizer

我在我的应用程序中实现了一个图像Slider,我想我知道如何以低效的方式做到这一点。

我得到了URL's个图片(我不知道这个数字,可能介于1或20之间,可能更多......)所以我必须在view中显示并且用户可以制作Swipe传递到下一张照片或者回到之前的照片。

所以,我想知道是否可以更好地处理G.C.Dblocks,或者使用它。如果是GCD。我是否应该将NSMutableData下载的图片填入UIview,然后点swipe ..?如果在每个swipe gesture之后下载图片会更好吗?

我不知道如何管理这个。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

您不希望同时在内存中保存多个大图像。您有两个问题需要解决:1。异步下载图像,并一次加载一个。

下载图像的方法是使用NSURLConnection。 NSURLConnection中有一个新的类方法(sendAsynchronousRequest:queue:completionHandler :,在iOS 5中添加),它将下载整个文件并在完成后调用一个块。它比创建连接并处理各种委托方法的代码更容易使用。

您可以一次启动多个下载,系统会负责管理它们。我建议一次不要超过3个。

第二个问题是如何显示图像。我建议使用UIPageViewController和过渡样式UIPageViewControllerTransitionStyleScroll。

如果你的图像足够大,那么你应该真正平铺它们。

Apple的Xcode文档中有一个名为PhotoScroller的示例应用程序。它展示了如何使用UIPageViewController和图像平铺处理多个大图像。如果你的图像不是那么大,那么平铺可能有点过分。处理平铺图像当然很复杂。