【发布时间】:2010-01-01 17:31:54
【问题描述】:
我有一个带有三个 UIScrollViews 的 UIView。我用已经分配了图像的自定义 UIImageView 加载每个。自定义 UIImageViews 很简单,只引入了一些新属性,允许跟踪滚动视图中的图像视图。
图像从磁盘加载非常快。下面的代码执行得非常快,但是每个图像视图我必须等待大约六秒钟,然后滚动视图中才会出现任何内容。如果我尝试加载所有图像,应用程序将崩溃
Program received signal: “0”.
通常是内存不足错误。照片来自手机的照片库。查看模拟器中使用的图像,它们的大小从 213KB 到 401KB 不等。我显然做错了什么,但不确定是什么。
我可能会使用 tableview,因为它确实允许分页,但我不确定 tableview 是否会有更好的性能。我想滚动视图的问题是所有的图像视图都必须在滚动视图中一次加载,而不是延迟加载。由于图像视图已经加载到(单例)字典中,为什么将它们加载到滚动视图中需要这么长时间?所有的 UI 都是在 IB 中完成的。
一般来说,有没有更好的方法?
这是将图像视图加载到滚动视图中的代码:
- (void) addImageViewsToScrollView:(NSMutableDictionary*)imageViews scrollView:(UIScrollView*)scrollView
{
int widthRunningTotal = 0;
int count = 0;
for(NSString *s in [imageViews allKeys]){
CustomImageView *myImageView = [imageViews valueForKey:s];
myImageView.imageName = s;
myImageView.imageId = count;
myImageView.frame = CGRectMake(widthRunningTotal, 0, 160, 100);
myImageView.contentMode = UIViewContentModeScaleAspectFit;
[scrollView addSubview:myImageView];
widthRunningTotal += 160;
count++;
}
scrollView.contentSize = CGSizeMake(widthRunningTotal, 100);
}
【问题讨论】:
标签: iphone cocoa-touch uitableview uiscrollview