如何让UIScrollView在添加imageView到它之间显示?

问题描述:

我有一个UIScrollView,并使用下面的代码向它添加9个imageview。如何让UIScrollView在添加imageView到它之间显示?

for (i = 0; i < 3; i++) 
     { 
     for (j = 0; j < 3; j++) 
     { 
     imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"some url"]]; 
     frame = [imageView frame]; 
     frame.origin.x = x; 
     frame.origin.y = y; 
     [imageView setFrame:frame]; 
     imageView.userInteractionEnabled = YES; 
     imageView.multipleTouchEnabled = YES; 
     [myScrollView addSubview:imageView]; 
     } 
     } 

我以为UIScrollView会显示,然后我们会看到每个图像加载在瓷砖中。但是,只有在加载所有图像后,才会发生什么情况,只有UIScrollView与所有图像一起出现。 如何让UIScrollView先来,然后显示每个被加载的图像?

您正在阻塞runloop,直到执行完整个代码块。因此,您的应用没有机会更新其绘图。您需要异步执行绘图(更具体地说,下载图像)。下载图像后,您可以将其添加到您的UIScrollView。请注意,您想使用类似performSelectorOnMainThread...的方法在主线程上执行此绘图。

+0

它的工作,但半完美。问题在于,即使图像被加载,如果我正在对scrollview执行任何当前操作,那么只有它按照我想要的那样工作,即用新的图像替换当前图像,否则它将如先前的情况那样。但是,如果我只是在玩它,我能够看到他们每个人都加载并替换previos。 如何在我甚至没有做任何事情时使它可见? – wolverine 2010-01-12 10:35:45

+0

不容易说没有看到代码。您可能必须让runloop知道您的视图需要使用setNeedsDisplayInRect:方法更新其绘图。 – 2010-01-12 17:27:16