我在我的应用程序中实现了一个图像Slider
,我想我知道如何以低效的方式做到这一点。
我得到了URL's
个图片(我不知道这个数字,可能介于1或20之间,可能更多......)所以我必须在view
中显示并且用户可以制作Swipe
传递到下一张照片或者回到之前的照片。
所以,我想知道是否可以更好地处理G.C.D
和blocks
,或者使用它。如果是GCD
。我是否应该将NSMutableData
下载的图片填入UIview
,然后点swipe
..?如果在每个swipe gesture
之后下载图片会更好吗?
我不知道如何管理这个。有任何想法吗?
答案 0 :(得分:0)
您不希望同时在内存中保存多个大图像。您有两个问题需要解决:1。异步下载图像,并一次加载一个。
下载图像的方法是使用NSURLConnection。 NSURLConnection中有一个新的类方法(sendAsynchronousRequest:queue:completionHandler :,在iOS 5中添加),它将下载整个文件并在完成后调用一个块。它比创建连接并处理各种委托方法的代码更容易使用。
您可以一次启动多个下载,系统会负责管理它们。我建议一次不要超过3个。
第二个问题是如何显示图像。我建议使用UIPageViewController和过渡样式UIPageViewControllerTransitionStyleScroll。
如果你的图像足够大,那么你应该真正平铺它们。
Apple的Xcode文档中有一个名为PhotoScroller的示例应用程序。它展示了如何使用UIPageViewController和图像平铺处理多个大图像。如果你的图像不是那么大,那么平铺可能有点过分。处理平铺图像当然很复杂。