这是我的程序:我有缓存变量@property (nonatomic, retain) NSMutableDictionary *cache;,我在这里存储我的UIImageViews。图像大小为768 × 1024。
UIImageView *cap_1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"face1_cap_0.png"]];
[self.cache setObject:cap_1
forKey:@"cap_1"];
[cap_1 release];
UIImageView *cap_2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"face1_cap_1.png"]];
[self.cache setObject:cap_2
forKey:@"cap_2"];
[cap_2 release];
UIImageView *cap_3 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"face1_cap_2.png"]];
[self.cache setObject:cap_3
forKey:@"cap_3"];
[cap_3 release];
UIImageView *cap_4 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"face1_cap_3.png"]];
[self.cache setObject:cap_4
forKey:@"cap_4"];
[cap_4 release];
UIImageView *cap_5 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"face1_cap_4.png"]];
[self.cache setObject:cap_5
forKey:@"cap_5"];
[cap_5 release];
UIImageView *cap_6 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"face1_cap_5.png"]];
[self.cache setObject:cap_6
forKey:@"cap_6"];
[cap_6 release];我在PanGesture中使用UIImageViews,每滑动50个点,我就会在我的主视图上添加每个UIImageView。我只在第一次出现延迟,然后我在主视图上添加了所有UIImageViews,但对于所有其他时间,它的工作速度很快。我如何优化第一次刷卡?或者请告诉我另一种方法来做它。
发布于 2012-03-15 20:52:59
您应该将冗长的操作卸载到不同的线程,以免阻塞UI。有关示例,请查看this article。
发布于 2012-03-15 20:53:26
你可以尝试在应用程序启动时加载它,这样用户就不会意识到他第一次滑动的时候,但在这种情况下,整个应用程序需要更长的时间才能打开。
发布于 2012-03-15 21:02:50
在视图did加载中,您可以直接将图像添加到主视图中,并将隐藏属性设置为YES。然后,您只需在用户滑动时将其属性设置为NO。
编辑:
另一种解决方案是制作一些用于显示的缩略图,保留原始图像,以便最终进行进一步的图像计算。
https://stackoverflow.com/questions/9719977
复制相似问题