【发布时间】:2014-04-17 09:07:32
【问题描述】:
我想首先在滚动视图上创建图像视图。我设置占位符图像或给图像视图的背景颜色。所以所有图像视图都显示。
- (void)LoadDataInScrollView
{
dispatch_queue_t imageQueue = dispatch_queue_create("Image Queue",NULL);
//totalImageGetDict into count total Number of object and generate imageview.
for (int ivalue = 0; ivalue < [totalImageGetDict count]; ivalue++)
{
dispatch_async(imageQueue, ^{
//define x value
CGFloat xOrigin =ivalue *ascrollView.frame.size.width+50;
imageView = [[UIImageView alloc] init];
imageView.tag = ivalue;
[imageView setBackgroundColor:[UIColor whiteColor]];
imageView.frame = CGRectMake(xOrigin-40,imgYpos, ascrollView.frame.size.width-20, scrollViewHight);
//then here first i set already downloaded image.it's comes from another class. getImageLoadDict into images are already downloaded**
if ([getImageLoadDict objectForKey:[NSNumber numberWithInteger:ivalue]]!= nil)
{
//dispatch_async(dispatch_get_main_queue(), ^{
[imageView setImage:[getImageLoadDict objectForKey:[NSNumber numberWithInteger:ivalue]]];
//});
}
else
{
//totalImageGetDict into remaining images object and asynchronously download here.
STVisionPhoto *photoObj = [totalImageGetDict objectForKey:[NSNumber numberWithInteger:ivalue]];
UIImage *newimage = [photoObj image];
dispatch_async(dispatch_get_main_queue(), ^{
[imageView setImage:newimage];
});
}
[ascrollView addSubview:imageView];
});
}
}
【问题讨论】:
-
您在代码中使用的是 ASIHTTP 还是 AFNetworking?只是想看看你是不是 - 然后尝试使用那里的类别在后台线程上异步下载图像。
-
@RenoJones,我没有使用那个类。我使用 Nsurl 类调用。
-
啊,好吧。然后选择 SDWebImage(他们正在以更好的方式处理异步下载),您不必为图像下载而烦恼。
标签: ios objective-c asynchronous objective-c-blocks