UIScrollView加载图像 - 制作滚动条很慢

时间:2014-05-17 20:03:06

标签: objective-c

我有一个带有许多UIViews的滚动视图,这些视图有UIImageViews - 我在滚动时加载图像。

所以每个页面都有4个这样的视图,它们在开始时被预加载到滚动条,并且我在滚动时加载下一页图像。 我在另一个线程中这样做,但是,滚动条不能完全滚动,如果你看起来很好,它有一些微小的电影。

这是加载它们的函数:

-(void)loadMainImageToIndex:(int)index
{
    NSDictionary *dic=[mainData objectAtIndex:index];
    NSString *userImageUrl=[dic objectForKey:@"url"];
    NSURL *userUrl=[NSURL URLWithString:userImageUrl];


    [self downloadImageWithURL:userUrl completionBlock:^(BOOL succeeded, NSData *tdata)
     {
         if (succeeded)
         {
             //load back
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^
                            {
                                UIImage *image=[UIImage imageWithData:tdata scale:0.25];
                                if (image)
                                {
                                    UIGraphicsBeginImageContextWithOptions(image.size, NO, image.scale);
                                    [image drawAtPoint:CGPointZero];
                                    image = UIGraphicsGetImageFromCurrentImageContext();
                                    UIGraphicsEndImageContext();
                                }
                                dispatch_async(dispatch_get_main_queue(), ^
                                               {

                                                   UIImageView *view=[mainImagesArray objectAtIndex:index];

                            });

         }
     }];

该网址已加载Asynch。

1 个答案:

答案 0 :(得分:0)

原来,观点阴影导致了这件事:

   //self.layer.shadowOffset=CGSizeMake(6.0, 6.0);
        //self.layer.shadowColor=[UIColor blackColor].CGColor;
        //self.layer.shadowRadius = 3;
        //self.layer.shadowOpacity = 0.7;

删除它可以解决问题。

self.layer.shouldRasterize = YES;  //solve the problem,