我正在使用这个: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/

10-13 03:50