2010-01-12 1 views
0

У меня есть UIScrollView, и я добавляю 9 изображений к нему, используя следующий код.Как заставить UIScrollView отображаться между добавлением изображения в него?

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 первым, а затем показать каждое загружаемое изображение?

ответ

2

Вы блокируете runloop до тех пор, пока не будет выполнен весь этот блок кода. Поэтому у вашего приложения нет возможности обновить его чертеж. Вы должны сделать рисунок (точнее, загрузку изображений) асинхронно. После загрузки изображения вы можете добавить его в свой UIScrollView. Обратите внимание, что вы хотите сделать этот рисунок на основном потоке с помощью метода, например performSelectorOnMainThread....

+0

Его рабочие, но полусовершенно. Проблема в том, что даже если изображения загружаются, если я выполняю текущее действие в scrollview, тогда он работает только так, как я хочу, то есть заменяя текущие изображения новыми, иначе он будет, как и в предыдущем случае. Но если я просто играю с ним, я могу видеть, как каждый из них загружает и заменяет предыдущие. Как сделать его видимым, когда я даже ничего не делаю? – wolverine

+0

Нелегко сказать, не видя кода. Возможно, вам придется позволить runloop знать, что вашему представлению необходимо обновить его чертеж с помощью метода setNeedsDisplayInRect :. –