iphone - UIScrollView 应用程序在设备中崩溃,但在模拟器中运行完美

标签 iphone uiscrollview photo-gallery

我正在开发一个照片库应用程序。 Root View 是一个导航 Controller ,它将用户带到缩略图 View 。点击任何缩略图都会将用户带到 PhotoView,该 View 会全屏显示点击的图像。

以下是我在 PhotoViewController 中所做的事情:

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

我初始化一个 UIScrollView 并将其作为 subview 添加到我的 View Controller 的 View 中。设置UIScrollView的一些基本属性。 将图像添加到 UIImageViews(数量为 5)。 将所有这些 imageView 作为 subview 添加到 UIScrollView 中。 当对任何图像执行缩放操作时,除当前图像 subview 外的所有图像 subview 都会从 ScrollView 中删除。 当图像缩小到最小比例时,所有图像都会添加回 UIScrollView。

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

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

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

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

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

最佳答案

它崩溃是因为内存不足,你应该检查的一件事是图片的大小,你是否从照片库中挑选图像而不进行编辑,有时这会给你分辨率为 1600x1400 的图像由于内存不足,手机几乎会崩溃,为此,您应该将图像大小调整为较小的图像。另一个可能导致它的问题是你一次加载太多图像(不过我不这么认为),如果你使用 ScrollView 来进行类似于 Iphone 上的照片应用程序的滚动,那么你应该只需要一次加载 3 个图像。另外,也许您在缩放时没有正确释放图像。我不知道您是否正在尝试实现与 iPhone 上的照片应用程序中的图片滚动类似的功能,如果您正在查看示例项目 PageControl,它们在那里很好地说明了这一点。

关于iphone - UIScrollView 应用程序在设备中崩溃,但在模拟器中运行完美,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1189225/

相关文章:

iphone - iPhone 中的 iAd 集成

iphone - 我可以对 nsuserdefaults 中存储的分数进行排序吗?

ios - 如何让scrollView滚动ImageView直到中心?

iPhone - CLLocationManager init 返回 nil

ios - UIScrollview,其他控件,不滚动

iphone - 如何使多个 UITableViewCells 相互通信/交互?

ios - Objective-C : Webviewcontroller is reloading after opening photo gallery

ios - 获取 iOS 照片库中所有照片的数组,其中包含面孔

android - 如何在android中打开图库中的位图

iphone - MPMoviePlayerController 停止 iPod 音乐播放