我正在使用这个:https://github.com/nicklockwood/SwipeView
我在应用程序的2个不同地方使用它。
屏幕上的30x30图片大约100kb文件大小,这部分没有问题
屏幕上1-3mb文件大小的150x150图像,这些是ios相机拍摄的照片。
在第二个方法中,当调用swipeViewCurrentItemIndexDidChange方法时,应用程序滞后了约0.5秒,这不会为用户带来良好的体验。我知道它正在发生,因为图像正在加载,并且我尝试改善了过程,但未成功。我希望加快速度,以使用户不会感到物品正在加载。图像是从设备加载的,不涉及互联网连接。
我知道这些操作始终在图库和Facebook应用中完成,而不会出现滞后的情况。所以我的代码或我正在使用的这个库都出了问题。
http://pastebin.com/XyCaRaig
最佳答案
if(self.pictures[index] != NULL) //(self.pictures[index] != NULL) //(button == nil) //(self.currentArray[index][2] != NULL)
{
UIImage *image = [UIImage imageWithContentsOfFile:self.pictures[index]];
button = [UIButton buttonWithType:UIButtonTypeCustom];
NSString *machineName = [MasterClass whichMachine];
if ([machineName isEqual:@"ipad"]) {
button.frame = CGRectMake(0.0, 0.0, 220, 220);
} else if ([machineName isEqual:@"iphone4"]) {
button.frame = CGRectMake(0.0, 0.0, 120, 120);
} else if ([machineName isEqual:@"ipod"]) {
button.frame = CGRectMake(0.0, 0.0, 120, 120);
}
else{
button.frame = CGRectMake(0.0, 0.0, 140, 140);
}
[button setBackgroundImage:image forState:UIControlStateNormal];
.....
我注意到您在小范围内使用全分辨率图像,并且它花费了很多不必要的资源来从CPU / GPU加载。幸运的是您根本没有崩溃。我建议您压缩按钮上显示的图像大小,并在必要时以全分辨率显示。 Facebook就是这样。
关于ios - Swipeview滞后于项目更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24417294/