2

我正在开发一个照片库应用程序。根视图是一个导航控制器,它将用户带到缩略图视图。点击任何缩略图将用户带到 PhotoView,它会全屏显示点击的图像。

以下是我在 PhotoViewController 中所做的:

该方法与我在 github 上找到的 ScrollingMadness 项目非常相似。

我初始化一个 UIScrollView 并将其作为子视图添加到我的视图控制器的视图中。设置 UIScrollView 的一些基本属性。将图像添加到 UIImageViews(数量为 5)。将所有这些 imageView 作为子视图添加到 UIScrollView。当对任何图像执行缩放操作时,除了当前图像子视图之外的所有图像子视图都将从滚动视图中删除。当图像缩小到最小比例时,所有图像都被添加回 UIScrollView。

正如 Apple 的示例代码中所解释的,我正在使用 TapDetectingImageView 委托来创建 imageViews 并处理触摸事件。

当我运行该应用程序时,模拟器中的一切正常。没有任何问题。但是当我在设备中运行该应用程序时,它会在我滚动到第三张或第四张图片后崩溃。在调试时,我发现在滚动到第三张或第四张图像后会调用 didReceiveMemory 警告。我使用 Instruments 运行应用程序。发生崩溃时,对象分配显示分配级别仅为 1.5-2MB。我相信这个级别的内存使用是非常正常的......对吧?

之前经历过这种情况的任何人,或者关于我如何摆脱它的任何意见......将是我目前在世界上需要的所有帮助。

如果您需要任何其他信息,请告诉我。

PS > 看到整个应用程序在模拟器中完美但在设备中崩溃,令人沮丧:(

4

1 回答 1

2

它崩溃了,因为它的内存不足,你应该检查的一件事是图片的大小,你是从照片库中选择没有编辑的图像,有时这会给你 1600x1400 分辨率的图像,这几乎是只是因为内存不足而导致手机崩溃,为此您应该将图像调整为较小的图像。可能导致它的另一个问题是您一次加载了太多图像(但我不这么认为),如果您使用滚动视图来滚动类似于 Iphone 上的照片应用程序,那么您应该只需要一次加载 3 张图像。也可能您在缩放时没有正确释放图像。我不知道您是否正在尝试完成与在 iPhone 上的照片应用中滚动图片类似的功能,

于 2009-07-27T17:25:13.217 回答