0

我正在开发一个 iPhone 照片应用程序,其中有一个视图,我在 uiscrollview 的帮助下显示通过该应用程序拍摄的所有图像。首先,我只是将所有当前图像加载到滚动视图中。但它使应用程序变慢并导致崩溃,并给出以下警告:

Received memory warning. Level=2

我用谷歌搜索了很多,发现这样做的原因可能是在视图上同时加载如此重的图像导致内存警告和事后崩溃。所以我选择了延迟加载的概念。

我只是在其中加载了三个图像,一个在中心(当前向用户显示),另外两个在两侧。我是通过以下方式做到的:

   - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
     {
        pageNum = (int)(scrollView.contentOffset.x / scrollView.frame.size.width);
        pageNumber = floor(pageNum);
        [self setImages:pageNumber];      //setting three images
     }

现在没有崩溃,没有内存警告,但滚动变得非常粗糙,有很多抽搐。

请建议我如何摆脱粗糙或显示与 iPhone 默认照片应用程序相同的所有图像。

非常感谢您的帮助。

注:1.图片数量不详,可不限。2. Xcode 3.2.6 3. ios SDK 4.3

请考虑链接 [链接]https://www.dropbox.com/sh/h0vwnhhx1acfcb5/W2TQ638udh 该链接显示了一个视频,其中我展示了一个嵌入了延迟加载的照片滚动条。有时它不会很快加载图像,滚动也变得粗糙。

4

2 回答 2

0

好的。如果我理解得很好,您想按顺序在 UITableView 中显示图像,并使表格滚动器正常工作。

我曾经在我的一个项目中遇到过同样的问题,我通过不下载图像并简单地显示它来解决它,更清楚的是我分为 3 个步骤:

1-创建一个 XML 文件来存储所有图像的网址,当然还有 id。
2-使用 NSXMLParser,获取所有图像的网址并将其添加到 NSArray,然后将其显示在 UITableView 上。您可以自定义 tableView 以使所有图像看起来像您想要设计的那样。
3-在 UITableView 方法上添加一个 UIWebView(这是关键)。将图像地址加载到这个 webView。

于 2012-05-10T14:45:30.540 回答