我目前正在尝试在滚动视图中加载一个大(16mb).jpg 文件的地图图像,以便您可以放大和缩小。
当我在模拟器中启动应用程序时,一切运行良好且流畅。但是,一旦我在我的测试设备(iPod 4.1、iOS 6.0)上运行它,应用程序就会显示启动图像,然后它就崩溃了,根本没有错误消息。
这就是代码当前的样子。
myImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"map.jpg"]];
myScrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(15,120,290,365)];
myScrollView.showsVerticalScrollIndicator=YES;
myScrollView.scrollEnabled=YES;
myScrollView.maximumZoomScale = 10.0;
myScrollView.minimumZoomScale = [myScrollView frame].size.width / myImage.frame.size.width;
myScrollView.clipsToBounds = YES;
myScrollView.bounces = NO;
myScrollView.showsHorizontalScrollIndicator = NO;
myScrollView.showsVerticalScrollIndicator = NO;
[self.view addSubview:whiteFrame];
[self.view addSubview:myScrollView];
myScrollView.contentSize = CGSizeMake(myImage.frame.size.width,myImage.frame.size.height);
myScrollView.delegate = self;
myScrollView.zoomScale = [myScrollView frame].size.width / myImage.frame.size.width;
[myScrollView addSubview:myImage];
任何帮助是极大的赞赏。
编辑:
我在文档中找到了这个
如果您有一个非常大的图像,或者正在通过网络加载图像数据,您可能需要创建一个增量图像源,以便您可以在累积图像数据时绘制它。您需要执行以下任务以从 CFData 对象增量加载图像:
创建 CFData 对象用于累积图像数据。
通过调用函数 CGImageSourceCreateIncremental 创建增量图像源。
将图像数据添加到 CFData 对象。
调用函数 CGImageSourceUpdateData,传递 CFData 对象和一个布尔值(bool 数据类型),该值指定数据参数是包含整个图像,还是仅包含部分图像数据。在任何情况下,data 参数都必须包含到该点为止累积的所有图像文件数据。
如果你积累了足够多的图片数据,调用CGImageSourceCreateImageAtIndex创建图片,绘制部分图片,然后释放。
通过调用函数 CGImageSourceGetStatusAtIndex 检查您是否拥有图像的所有数据。如果图像完整,则此函数返回 kCGImageStatusComplete。如果图像不完整,请重复步骤 3 和 4,直到完成。
释放增量镜像源。
有谁知道一个示例代码?